pug不迭代对象数组

问题描述 投票:0回答:2

我正在使用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 });
  }
);

这是输出:output image

它不显示错误消息。你能帮我吗?

javascript node.js express pug express-validator
2个回答
0
投票

我不确定这是否有问题,但是我通常是这样:

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

然后:

li =#{error.msg}


0
投票

基于您的console.log,我认为errors变量是包含键errors的对象。

因此,当您执行each error in errors时,error等于errors数组,因为循环将索引到对象而不是数组中。

这意味着您必须将res.render更改为res.render("register", errors);res.render("register", { errors: errors.errors });

© www.soinside.com 2019 - 2024. All rights reserved.