在 express js 中使用路由器进行 Multer 存储
Multer storage with router in express js
我有这条路线,当我给 desk
键一切正常时,我可以上传我的图像但是当我使用 storage
对象时它不起作用并且找不到路线,如果我使用 storage
和 app.use
一切正常。
我可以使用 app.use
来处理这个问题,但我是 express 的新手,很好奇为什么它不起作用!!!
感谢任何帮助:)
router.route("/").post(
multer({
//dest: 'uploads/expense'
storage: multer.diskStorage({
destination: (req, file, next) => {
next(null, path.join(__dirname, '/uploads/expense'))
},
filename: (req, file, next) => {
next(null, file.fieldname +'-'+file.originalname)
}
})
}).single("image")
,
controller.insertData // calling my insert controller
)
问题是您在 multer
的目标中定义的 path
应该没有 path.join()
:
router.route("/").post(
multer({
//dest: 'uploads/expense'
storage: multer.diskStorage({
destination: (req, file, next) => {
next(null,'uploads/expense') // HEREEE!
},
filename: (req, file, next) => {
next(null, file.fieldname +'-'+file.originalname)
}
})
}).single("image")
,
controller.insertData // calling my insert controller
)
我有这条路线,当我给 desk
键一切正常时,我可以上传我的图像但是当我使用 storage
对象时它不起作用并且找不到路线,如果我使用 storage
和 app.use
一切正常。
我可以使用 app.use
来处理这个问题,但我是 express 的新手,很好奇为什么它不起作用!!!
感谢任何帮助:)
router.route("/").post(
multer({
//dest: 'uploads/expense'
storage: multer.diskStorage({
destination: (req, file, next) => {
next(null, path.join(__dirname, '/uploads/expense'))
},
filename: (req, file, next) => {
next(null, file.fieldname +'-'+file.originalname)
}
})
}).single("image")
,
controller.insertData // calling my insert controller
)
问题是您在 multer
的目标中定义的 path
应该没有 path.join()
:
router.route("/").post(
multer({
//dest: 'uploads/expense'
storage: multer.diskStorage({
destination: (req, file, next) => {
next(null,'uploads/expense') // HEREEE!
},
filename: (req, file, next) => {
next(null, file.fieldname +'-'+file.originalname)
}
})
}).single("image")
,
controller.insertData // calling my insert controller
)