如果在Express验证器中间件之前将Multer用作中间件函数,则Multer(Express)会处理错误

如果在Express验证器中间件之前将Multer用作中间件函数,则Multer(Express)会处理错误,express,error-handling,multer,express-validator,Express,Error Handling,Multer,Express Validator,据我所知,我需要将multer中间件放在express validator中间件之前,以便能够从express validator自定义验证器访问req.body,如下所示: app.post('/editPhoto', upload.single('avatar'), [express-validator middleware], (req, res, next) => { // req.file //req.body }); 有两个选项可用于使用multer: a

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

app.post('/editPhoto', 
upload.single('avatar'), 
[express-validator middleware],
(req, res, next) => {
    // req.file 
   //req.body
});
有两个选项可用于使用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的错误,正如在我的第一个示例中一样,我最终解决了这个问题,使用multer代码创建了一个函数,在其中检查错误(使用我问题中示例的第二个选项)。我在所有express validator中间件函数之前调用中间件链中的该函数