如果我在快速验证器中间件之前使用MULTER作为中间件函数,则MULTER(Express)处理错误 [英] Multer (Express) handle error if I use multer as a middleware function before express-validator middleware

查看:0
本文介绍了如果我在快速验证器中间件之前使用MULTER作为中间件函数,则MULTER(Express)处理错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

据我所知,我需要将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路由处理中间件中处理Multer的错误

推荐答案

我最终解决了这个问题,创建了一个使用Multer代码检查错误的函数(使用问题中示例的第二个选项)。我在所有快速验证器中间件函数之前调用中间件链中的该函数。

这篇关于如果我在快速验证器中间件之前使用MULTER作为中间件函数,则MULTER(Express)处理错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆