【问题标题】:Multer (Express) handle error if I use multer as a middleware function before express-validator middleware如果我在 express-validator 中间件之前使用 multer 作为中间件函数,则 Multer (Express) 处理错误
【发布时间】:2019-08-31 05:22:35
【问题描述】:

据我所知,我需要将 multer 中间件放在 express-validator 中间件之前,以便能够从 express-validator 自定义验证器访问 req.body,如下所示:

app.post('/editPhoto', 
upload.single('avatar'), 
[express-validator middleware],
(req, res, next) => {
    // req.file 
   //req.body
});

您可以使用 2 个选项来使用 multer:

app.post('/editPhoto', upload.single('avatar'), [express-validator middleware],(req, res, next) => {
   // req.file 
//req.body
})

或者你可以使用:

app.post('/editPhoto', (req, res, next) => {
  upload(req, res, function (err) {
    if (err) {
      // This is a good practice when you want to handle your errors differently

      return
    }

    // Everything went fine 
  })
})

在第二个选项中,您可以处理 Multer 的错误,如果我在 express-validator 之前使用 Multer 作为中间件,我想知道是否可以在 express-validator 自定义验证器或快速路由处理中间件中处理 Multer 的错误中间件,和我的第一个例子一样

【问题讨论】:

    标签: express error-handling multer express-validator


    【解决方案1】:

    我终于解决了它,使用 multer 代码创建一个函数,在其中检查错误(使用我问题中示例的第二个选项)。我在所有 express-validator 中间件函数之前在中间件链中调用该函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-25
      • 2016-09-14
      • 2023-02-17
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 2019-06-29
      相关资源
      最近更新 更多