Пользовательский экспресс-валидатор-валидатор не работает - PullRequest
0 голосов
/ 05 июня 2018

У меня проблема с кодом, я установил проверку для проверки электронной почты, если она уже есть в базе данных, другая проверка работает, но проверка электронной почты не работает

это мой код в контроллере

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 голосов
/ 06 июня 2018

Что касается экспресс-валидатора, то, что вы делаете неправильно, это развертывание второго аргумента для получения req;.custom() принимает validator(value, { req, location, path }) функцию .

Просто измените ее, как показано ниже:

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

... тогда, если ваша логика AuthController.findUserByEmail() верна, он должен работать так, как вы ожидали;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...