2017-06-27 63 views
0

我已經使用ExpressJs和pug(模板)創建了一個基本的身份驗證應用程序,但正在工作,但是當身份驗證失敗時,它會顯示同一字段的多個錯誤消息。每個字段只顯示1個錯誤消息Express-validator

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 }); 
} 

enter image description here

我想是顯示一個錯誤消息的單場

回答

0

找到回答我自己的問題

在僅打印1個消息喜歡 -

if(errors) 
    for error in errors 
    if (error.param=='email') 
     p.help.is-danger #{error.msg} 
     -break 
+0

或者使用'只需加入-break環路結果內的錯誤[0]'代替'for'環 – robertklep