哈巴狗不迭代对象数组
pug doesn't iterate array of object
我正在使用 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
它不显示错误消息。
你能帮帮我吗?
我不确定这是否是一个问题,但我通常这样做:
res.render("register", { "errors": 错误 });
然后:
li=#{error.msg}
根据你的 console.log 我认为 errors
变量是一个包含键 errors
.
的对象
所以当您执行 each error in errors
时,error
等于 errors
数组,因为循环索引到对象而不是数组。
这意味着您必须将 res.render 更改为 res.render("register", errors);
或 res.render("register", { errors: errors.errors });
我正在使用 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
它不显示错误消息。 你能帮帮我吗?
我不确定这是否是一个问题,但我通常这样做:
res.render("register", { "errors": 错误 });
然后:
li=#{error.msg}
根据你的 console.log 我认为 errors
变量是一个包含键 errors
.
所以当您执行 each error in errors
时,error
等于 errors
数组,因为循环索引到对象而不是数组。
这意味着您必须将 res.render 更改为 res.render("register", errors);
或 res.render("register", { errors: errors.errors });