问题描述
据我所知,我需要将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代码检查错误的函数(使用问题中示例的第二个选项)。我在所有快速验证器中间件函数之前调用中间件链中的该函数。