如果我在快速验证器中间件之前使用multer作为中间件功能,则存在Multer(Express)处理错误

时间:2019-08-30 18:59:24

标签: express error-handling multer express-validator

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

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定制验证器或express route处理中间件中处理Multer的错误?中间件,如我的第一个示例

1 个答案:

答案 0 :(得分:0)

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