快速验证器:条件验证

问题描述

你好,我想在 express-validation 中集成 IF...else 语句,但我在运行时面临。

我知道我可以使用 Oneof() 但它返回 TypeError: chain.run is not a function

validator.js

const {  validationResult,check } = require('express-validator');
exports.surveyValidation =[
        
           [ [check('question.label').isLength({min:5}),check('question.mandatory').isBoolean()],check('question.min').isNumeric(),check('question.max').isNumeric()]
        ]


exports.validate =(req,res,next)=>{
    const errors = validationResult(req);
    console.log(`errors`,errors)
        if (!errors.isEmpty()) {
            console.log(`errors`,errors)
            return res.status(422).json({ errors: errors.array() });
        }
        return next()
}

可以有一个罐子,我可以在其中调用没有 question.min 和 question.max 的路线,所以我只想验证这个字段,如果它存在,否则我可以继续没有问题。 >

因为验证是用来存储问题的,关闭的问题没有这个键

api.js

app.post("/api/question",surveyValidation,validate,(req,res) => {
  surveyDao.question(req.body.question,req.body.idSurvey)
    .then(result => {
      res.json(result)
    })
    .catch(err => {
      console.log(`err`,err)
      res.status(500).send(err)
    })

})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)