Node.js 自定义快速验证器验证器不';行不通

Node.js 自定义快速验证器验证器不';行不通,node.js,express,express-validator,Node.js,Express,Express Validator,我在我的代码中有问题,我设置了检查电子邮件的验证(如果已经在数据库中),其他验证工作正常,但电子邮件的验证不工作 这是我在控制器中的代码 AuthController.register = (req, res) => { //EMAIL req.checkBody('email') .isEmail().withMessage( "must be provided" ) .custom((value, req ) => { return AuthController.fin

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

这是我在控制器中的代码

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

此代码未重新调整错误,可以帮助我解决有关express validator的此问题,您所做的错误是将第二个参数展开以获取
req

只需按如下方式进行更改:

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

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

那么当你运行这个代码时会发生什么呢?我没有收到已经在使用的错误电子邮件