0

我正在使用 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跳过所有中间件?

感谢您提前提供任何帮助。

4

0 回答 0