мопс не перебирает массив объектов - PullRequest
0 голосов
/ 10 января 2020

Я использую express-validator, и когда я регистрирую свои ошибки, все в порядке:

 errors:
   [ { value: '',
       msg: 'Email Field is empty',
       param: 'email',
       location: 'body' },
     { value: '',
       msg: 'Your email is not valid',
       param: 'email',
       location: 'body' } ] }

в моем register.pug представлении:

   if(errors)
      .alert.alert-danger
          ul.mb-0
             each error in errors
                li=error.msg

это мой маршрут :

router.post(
  "/register",
  [
    check("email")
      .notEmpty()
      .withMessage("Email Field is empty"),
    check("email")
      .isEmail()
      .withMessage("Your email is not valid")
  ],
  function(req, res) {
    const errors = validationResult(req);
    res.render("register", { errors });
  }
);

это вывод: вывод изображения

он не отображает сообщения об ошибках. ты можешь мне помочь?

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Основываясь на вашем console.log, я думаю, что переменная errors - это объект, содержащий ключ errors.

Так что, когда вы делаете each error in errors, error равно errors массив, потому что l oop индексирует в объект вместо массива.

Это будет означать, что вам придется изменить res.render на res.render("register", errors); или res.render("register", { errors: errors.errors });

0 голосов
/ 10 января 2020

Я не уверен, если это проблема, но обычно я делаю это следующим образом:

res.render ("register", {"errors": errors});

а затем:

li = # {error.msg}

...