【问题标题】:Multer storage with router in express js在 express js 中使用路由器进行 Multer 存储
【发布时间】:2021-01-24 15:09:00
【问题描述】:

我有这条路线,当我给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
    )

【问题讨论】:

  • 我认为应该在没有path.join()的情况下定义路径,也许如果您尝试使用next(null,'uploads/expense')
  • 是的,你是对的,问题是path.join(),谢谢@Runsis
  • 我会将其添加为答案,以便您将其保留为已接受:D

标签: node.js express multer


【解决方案1】:

问题是您在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
    )

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 2012-02-10
    • 1970-01-01
    • 2020-10-31
    • 2015-01-30
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多