Express 帕格迭代——快速路线
我有一个在express中返回错误消息的路由。使用连接闪存。一切正常,我记录了消息,但无法在我的pug文件中显示消息。希望有人能指点我的错误/误解。我按照教程学习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('
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中的每个错误
。为什么消息中的每个错误都不是?