Экспресс валидатор useFirstErrorOnly не работает - PullRequest
0 голосов
/ 20 мая 2018

Я использую узел v8.11.1, экспресс 4.16.3 и экспресс-валидатор 5.2.0.У меня есть пара проверок для того же поля электронной почты.Это мой маршрут сейчас

const { body, validationResult } = require('express-validator/check');

router.post('/save',
[
  body('email').not().isEmpty().withMessage('email empty'),
  body('email').isEmail().withMessage('not a valid email')
],
(req, res)=>{
  const errors = validationResult(req).useFirstErrorOnly();
  if (!errors.isEmpty()) {
    req.session.msgs = errors.array();
    res.redirect('/signup');
  }

   else {
      //save the email in db
   }
});

Я получаю следующую ошибку TypeError: validationResult(...).useFirstErrorOnly is not a function.

Я в основном основал свой код на примере, найденном в документах , но япродолжаю терпеть неудачу, когда я пытаюсь также включить useFirstErrorOnly как-то.

Если я не включу useFirstErrorOnly, я получу оба сообщения email empty и not a valid email, поэтому я думаю, что мой код работает нормально, я просто не могу заставить useFirstErrorOnly работать.

Какие-либо предложения ?Спасибо

1 Ответ

0 голосов
/ 21 мая 2018

Экспресс-валидатор сопровождает здесь.

Вы больше не используете функцию useFirstErrorOnly.Это было в Express-validator v3, но после выпуска v4 оно было прекращено.
Теперь вы должны сделать validationResult(req).array({ onlyFirstError: true }).

Если вы можете, пожалуйста, укажите мнегде в документах мы предлагаем использовать .useFirstErrorOnly()*, чтобы я мог это исправить.
В любом случае, я должен упомянуть, что это было в руководстве по обновлению для старых пользователей с тех пор.

* Также не забывайте не следовать никаким учебникам по экспресс-валидации, выпущенным до августа 2017 года, поскольку они, вероятно, слишком устарели.

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