экспресс-валидатор неверная проверка - PullRequest
1 голос
/ 04 апреля 2019

Я использую экспресс-валидатор 5.3.1.Я определил проверку пароля следующим образом:

check('password')
  .not().isEmpty().withMessage('Password can\'t be null')
  .isString()
  .isLength({ min: 8 }),
check('retypePassword')
  .not().isEmpty().withMessage('Password can\'t be null')
  .isString().withMessage('Password must be a string')
  .custom((value, { req }) => {
    if(value.trim() !== req.body.password.trim()) {
      throw new Error ('Password confirmation does not match password');
    }
  }),

Для тестирования я отправляю тот же пароль и retypePassword ('password') и получаю ошибку:

[{"location": "body "," param ":" retypePassword "," value ":" password "," msg ":" Invalid value "}]

Я определил сообщение со всей ошибкой retypePassword, так что происходитна?

1 Ответ

1 голос
/ 04 апреля 2019

При реализации проверки custom вы должны вернуть true, если проверка прошла успешно, в противном случае вы получите сообщение об ошибке «Недопустимое значение».Таким образом, вы просто добавляете оператор return true;, как этот

.custom((value, { req }) => {
    if(value.trim() !== req.body.password.trim()) {
        throw new Error ('Password confirmation does not match password');
    }
    return true;
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...