帕格迭代 - 表达路线

时间:2018-02-15 23:57:29

标签: express iteration pug

我有一个在express中返回错误消息的路由。使用连接闪存。一切正常,我记录了消息,但我无法在我的pug文件中显示消息。希望有人会指导我的错误/误解。我按照教程学习快速,所以我先发布我的代码,然后发布带有把手的教程代码。

我的路线是:

    router.get('/signup', function (req, res) {
    var messages = req.flash('error')
    console.log(messages)
    res.render('signup', { csrfToken: req.csrfToken(), messages: messages, hasErrors : messages.length > 0 });
});

这是我的注册玉文件。注意if块在顶部用"每个"迭代,然后在P行显示SINGLE消息:

extends layout


block content

  //- The error is logged but not displaying in my pug
  //- Error iteration to display error messages
  if (hasErrors)
    each error in hasErrors
      p= error
  //- end of iteration
  div.constainer
    div.row
      div.col-md-4.offset-4
        h1 Signup
        form(action="" method="post")
          div.form-group
            label E-mail:
            br
            input.form-control( type="text" id="email" name="email")
          div.form-group
            label Password:
            br
          input.form-control( type="password" id="password" name="password")
          br
          input(type="hidden" name = "_csrf" value="#{csrfToken}")
        button(type="submit") Signup

原始教程有把手,它有效。我试图用帕格重建相同的例子。以下是带有把手代码的教程:

div class="row">
    <div class="col-md-4 col-md-offset-4">
        <h1>Sign Up</h1>
        >>>>>>***{{#if hasErrors}}
            <div class="alert alert-danger">
                {{# each messages }}
                    <p>{{this}}</p>
                {{/each}}
            </div>
        >>>>>>{{/if}}***
        <form action="/user/signup" method="post">
            <div class="form-group">
                <label for="email">E-Mail</label>
                <input type="text" id="email" name="email" class="form-control">
            </div>
            <div class="form-group">
                <label for="password">Password</label>
                <input type="password" id="password" name="password" class="form-control">
            </div>
            <input type="hidden" name="_csrf" value="{{ csrfToken }}">
            <button type="submit" class="btn btn-primary">Sign Up</button>
        </form>
    </div>
</div>

带有把手代码的代码有效。我刚刚将相同的代码翻译成了哈巴狗。 如果我完全删除迭代并且只添加#{hasErrors} Jade显示为true和false,那么我的路线很好,这是我在Pug中的迭代。

我是初学者。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如OP所确认,each声明应为each error in messages