我已经使用ExpressJs和pug(模板)创建了一个基本的身份验证应用程序并且正在运行,但是当身份验证失败时,它会显示同一字段的多个错误消息。
Login.pug
body
div.columns
div.card.column.is-4.is-offset-4
if(error)
p.help.is-danger #{error}
form(action="/account/login",method="post")
div.card-content
div.content
div.field
p.control
input(type="text", placeholder="Email", name="email").input.is-primary.is-outlined
if(errors)
for error in errors
if (error.param=='email')
p.help.is-danger #{error.msg}
div.field
p.control
input(type="password", placeholder="Password", name="password").input.is-primary.is-outlined
if(errors)
for error in errors
if (error.param=='password')
p.help.is-danger #{error.msg}
button(type="submit",align="right").button.is-primary.is-outlined.is-pulled-right Login
路线(account.js)
req.checkBody('email', 'Email is required').notEmpty();
req.checkBody('email', 'Email must be valid').isEmail();
req.checkBody('password', 'Password is required').notEmpty();
req.checkBody('password', 'Password must be 8-16 characters long').isLength(8);
var errors = req.validationErrors();
if (errors) {
res.render('login', { errors: errors });
}
我想要的是显示单个字段的单个错误消息
答案 0 :(得分:0)
找到我自己的问题的答案
在循环中添加-break
导致只打印一条消息,如 -
if(errors)
for error in errors
if (error.param=='email')
p.help.is-danger #{error.msg}
-break