自定义快速验证器验证器不起作用

时间:2018-06-05 06:50:21

标签: node.js express express-validator

我的代码有问题,如果已经在数据库中,我设置了检查电子邮件的验证,其他验证工作,但验证电子邮件不起作用

这是我在Controller中的代码

AuthController.register = (req, res) => {

//EMAIL
req.checkBody('email')
.isEmail().withMessage( "must be provided" )
.custom((value, req ) => {
    return AuthController.findUserByEmail(req, value).then(user => {
        if(user == true){
            return Promise.reject('E-mail already in use');
        }
    });
}).withMessage('E-mail already in use');
}

这段代码没有重新调整错误,可以帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

关于express-validator,你做错了的是解开第二个参数来获取req; .custom() takes a validator(value, { req, location, path }) function

只需更改如下:

// before
// .custom((value, req ) => {
// after
.custom((value, { req }) => {

...然后,如果您的AuthController.findUserByEmail()逻辑正确,它应该按预期工作;)