1

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

这是我在控制器中的代码

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');
}

此代码未重新调整错误,可以帮助我解决此问题

4

1 回答 1

2

关于 express-validator,你做错的是解开第二个参数 get req.custom()需要一个validator(value, { req, location, path })函数

只需将其更改如下:

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

...那么,如果您的AuthController.findUserByEmail()逻辑是正确的,它应该可以按您的预期工作;)

于 2018-06-06T06:08:16.187 回答