【问题标题】:SyntaxError: Identifier '__dirname' has already been declaredSyntaxError:标识符“__dirname”已被声明
【发布时间】:2021-03-28 12:20:31
【问题描述】:

您好,我正在尝试在 server.js 中创建一个静态文件夹以上传图片,但是当我声明 const __dirname = path.resolve() 时出现错误消息

"const __dirname = path.resolve() ^

SyntaxError: 标识符 '__dirname' 已被声明"

扔掉

require('dotenv').config()
const path = require('path')
const express = require('express')
const server = express()
const { notFound, errorHandler } = require('./middleware/errorMiddleware')
const { connectDB } = require('./config/db')

const productRoutes = require('./routes/productRoutes.routes')
const userRoutes = require('./routes/userRoutes.routes')
const orderRoutes = require('./routes/orderRoutes.routes')
const uploadRoutes = require('./routes//uploadRoutes.routes')
connectDB()

server.use(express.json())

server.get('/', (req, res) => {
  res.send('API is running.........')
})
//Routes
server.use('/api/products', productRoutes)
server.use('/api/users', userRoutes)
server.use('/api/orders', orderRoutes)
server.use('/api/upload', uploadRoutes)

server.get('/api/config/paypal', (req, res) =>
  res.send(process.env.PAYPAL_CLIENT_ID)
)

const __dirname = path.resolve()
server.use('/uploads', express.static(path.join(__dirname, '/uploads')))

applicationCache.server.use(notFound)
server.use(errorHandler)

//Listen
const PORT = process.env.PORT || 8080
server.listen(
  PORT,
  console.log(`Server running in ${process.env.NODE_ENV} port ${PORT}`)
)

请大家帮忙谢谢!

【问题讨论】:

    标签: node.js express multer


    【解决方案1】:

    如果您删除以下行,您的问题就解决了:

    const __dirname = path.resolve()
    

    __dirname 已在 global 命名空间中声明。

    您可以在documentation查看更多信息

    【讨论】:

      【解决方案2】:

      Server.js 在这里

      应用程序/后端/server.js

      您可能正在寻找类似的东西

      应用/上传

      如果你使用 __dirname 你会得到

      应用/后端/上传

      节点脚本中的 __dirname 返回当前 JavaScript 文件所在文件夹的路径。

      如果我们将 __dirname 重命名为 __variableOfChoice。我们得到

          const __variableOfChoice = path.resolve()
          server.use('/uploads', express.static(path.join(__variableOfChoice , 
          '/uploads')))
      

      应用/上传

      我从 ./App "start": "node backend/server", 运行这个命令,

      在节点版本 v12.17.0 上测试 Here How I did it

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-25
        • 2021-11-18
        • 2021-09-29
        • 1970-01-01
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多