【问题标题】:express validator custom error not working快递验证器自定义错误不起作用
【发布时间】:2021-01-06 14:51:25
【问题描述】:

我正在使用 express-validator 来验证输入,还使用 ​​Sequelize ORM 进行数据库查询。尝试在 express-validator 上验证自定义函数。无论输出如何,该功能总是失败这是验证器主体

验证器:

body('firmName').notEmpty().withMessage('Firm Name is required.').custom((name, { req, loc, path }) => {
    Firm.findOne({ where: { firmName: name }}).then(firm => {
        if(firm != null) {
            return Promise.reject('errr')
        } else {
            return Promise.resolve('Ok')
        }
    }).catch(err => {
        console.log(err)
        return Promise.reject('errr')
    })
}).withMessage('Firm Name already exists.'),

这就是我从控制器发送结果的方式:

const errors = validationResult(req);
 if (!errors.isEmpty()) {
 return res.status(422).json({ errors: errors.array() });
}

Sequelize 工作正常,但验证总是失败。我尝试返回布尔值,但也失败了。

【问题讨论】:

    标签: node.js sequelize.js express-validator validator.js


    【解决方案1】:

    console.log errors.array() 并查看这些故障是什么并修复它们。

    if (!errors.isEmpty()) {
     console.log(errors.array());
     return res.status(422).json({ errors: errors.array() });
    }
    
        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多