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