我正在使用 express-validator 进行正文验证,并使用 multer-gridfs-storage 进行上传。
以下是我的中间件序列:-
router.post('/addproject' , reqValidation.validate('addproject') , auth.ensureAuthenticated,
upload.single('project') ,handlers.addprojectHandler , handlers.addprojectErrorHandler)
reqValidation.validate('addproject') 返回:-
case 'addproject' : {
return [
body('title' , ).exists().notEmpty().trim() ,
body('description' , 'Provide description').exists().notEmpty().trim() ,
body('techstack' , "Provide atleast one Tech Stack of your project").exists().notEmpty().trim() ,
body('tag' , "Provide atleast one tag for your project").exists().notEmpty().trim()
]
}
auth.ensureAuthenticated 只是检查用户是否使用 passportjs 登录然后来,上传使用 multer-gridfs-storage 的中间件。然后,路由处理程序。
我担心的是,如果验证出现问题,我将只能使用 ValidationResult(req) 在路由处理程序中处理它,但在到达那里之前,上传已经发生。
我该如何避免呢?如何在验证本身期间抛出错误或调用 next(err) 以便请求直接进入handlers.addprojectErrorHandler跳过所有中间件?
感谢您提前提供任何帮助。