SyntaxError: Identifier '__dirname' has already been declared
SyntaxError: Identifier '__dirname' has already been declared
您好,我正在尝试在我的 server.js 中创建一个静态文件夹用于图片上传,但是当我声明 const __dirname = path.resolve() 时,错误消息
"const __dirname = path.resolve()
^
语法错误:标识符“__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}`)
)
哪位大神帮忙谢谢!
如果您删除以下行,您的问题就解决了:
const __dirname = path.resolve()
__dirname
已经在 global
命名空间中声明。
您可以在 documentation
中查看更多信息
Server.js就在这里
App/backend/server.js
您可能正在寻找这样的东西
App/upload
如果你使用__dirname你得到
App/backend/upload
__dirname 在节点脚本中 returns 当前 JavaScript 文件所在文件夹的路径。
如果我们将 __dirname 重命名为 __variableOfChoice。我们得到
const __variableOfChoice = path.resolve()
server.use('/uploads', express.static(path.join(__variableOfChoice ,
'/uploads')))
App/upload
I was running This command from ./App "start": "node backend/server",
在节点版本 v12.17.0 上测试
Here How I did it
您好,我正在尝试在我的 server.js 中创建一个静态文件夹用于图片上传,但是当我声明 const __dirname = path.resolve() 时,错误消息
"const __dirname = path.resolve() ^
语法错误:标识符“__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}`)
)
哪位大神帮忙谢谢!
如果您删除以下行,您的问题就解决了:
const __dirname = path.resolve()
__dirname
已经在 global
命名空间中声明。
您可以在 documentation
中查看更多信息Server.js就在这里
App/backend/server.js
您可能正在寻找这样的东西
App/upload
如果你使用__dirname你得到
App/backend/upload
__dirname 在节点脚本中 returns 当前 JavaScript 文件所在文件夹的路径。
如果我们将 __dirname 重命名为 __variableOfChoice。我们得到
const __variableOfChoice = path.resolve()
server.use('/uploads', express.static(path.join(__variableOfChoice ,
'/uploads')))
App/upload
I was running This command from ./App "start": "node backend/server",
在节点版本 v12.17.0 上测试 Here How I did it