Javascript 帕格没有';t迭代对象数组
我正在使用Javascript 帕格没有';t迭代对象数组,javascript,node.js,express,pug,express-validator,Javascript,Node.js,Express,Pug,Express Validator,我正在使用express validator,当我记录错误时,一切正常: errors: [ { value: '', msg: 'Email Field is empty', param: 'email', location: 'body' }, { value: '', msg: 'Your email is not valid', param: 'email', location: 'bo
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 });
}
);
这是输出:
它不显示错误消息。
你能帮我吗?我不确定这是否是个问题,但我通常是这样做的: res.render(“寄存器”,{“错误”:错误}) 然后:
li=#{error.msg}基于您的console.log,我认为
errors
变量是一个包含键errors
的对象
因此,当您执行errors
中的每个错误时,error
等于errors
数组,因为循环是索引到对象而不是数组中
这意味着您必须将res.render更改为
res.render(“register”,errors)代码>或res.render(“寄存器”{errors:errors.errors})
通过remove=修复了错误,但问题仍然存在res.render
调用不会产生任何影响,除非nodejs的版本很旧,因为{errors}
只是{errors:errors}