在 express js 中使用路由器进行 Multer 存储

Multer storage with router in express js

我有这条路线,当我给 desk 键一切正常时,我可以上传我的图像但是当我使用 storage 对象时它不起作用并且找不到路线,如果我使用 storageapp.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
    )