Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express 帕格迭代——快速路线_Express_Iteration_Pug - Fatal编程技术网

Express 帕格迭代——快速路线

Express 帕格迭代——快速路线,express,iteration,pug,Express,Iteration,Pug,我有一个在express中返回错误消息的路由。使用连接闪存。一切正常,我记录了消息,但无法在我的pug文件中显示消息。希望有人能指点我的错误/误解。我按照教程学习express,所以我将先发布我的代码,然后发布带有把手的教程代码 我的路线是: router.get('/signup', function (req, res) { var messages = req.flash('error') console.log(messages) res.render('

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

我的路线是:

    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 });
});
这是我的注册档案。注意顶部带有“each”迭代的if块,然后在P行中显示单个消息:

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>
div class=“行”>
注册
>>>>>>***{{#如果有错误}
{{{#每条消息}
{{this}}

{{/每个}} >>>>>>{{/if}*** 电子邮件 密码 注册
带把手的代码有效。我刚刚把同样的代码翻译成帕格。 如果我完全删除迭代,只添加#{hasErrors}true和false,这样我的路线就可以了,这就是我在帕格中的迭代


我是初学者。如有任何帮助,我们将不胜感激。

经OP确认,
每条
语句都应该是
消息中的每个错误

您能试着打印
hasrerrors
吗?它应该是一个数组,而不是布尔值。在我的jade中,我刚刚添加了#{hasrerrors},当我输入用户和密码时,它用“false”编译了页面。这正是问题所在,因为
{hasrerror}
只是有一个
true
false
的标志,您正试图在下一条语句中循环hasErrors中的每个错误。要么你应该使用另一个变量(数组),要么
hasrerror
应该被分配一个数组。我用了一个教程来学习这一点,它在Handlebar中,我只是尝试在pug中创建相同的应用程序。我在上面发布了车把代码,我所要做的就是用帕格重新创建同一个应用程序。所以这不是路线,除非我遗漏了什么。现在我看到你用
把手更新了你的问题。在这里你可以看到
{{{each messages}}
,在帕格语中它被写为
hasrerrors中的每个错误
。为什么消息中的每个错误都不是