1
我有一個index.ejs
爲我的主頁呈現<%- partial ('../user/new.ejs') %>
我的註冊頁面。在添加閃存錯誤消息的過程中,我注意到部分無法訪問本地人[閃存未定義錯誤]。同時,如果我加載部分的視圖(通過訪問root/user/new
直接對快閃消息被正確執行部分會在帆中訪問當地人嗎?爲什麼不?
有人能解釋這是爲什麼,並且沒有任何變通
可能原因:?index.ejs
是裝通過res.redirect
同時專用註冊視圖通過res.view
加載
控制器:
create: function (req, res, next) {
User.create({
email: req.param('email'),
encryptedPassword: req.param('password')
}, function userCreated(err, user) {
if (err) {
console.log(err);
req.session.flash = {
err: err.ValidationError
}
return res.redirect('/');
}
res.redirect('/user/show/'+ user.id);
//res.json(user);
});
},
index.ejs只是<%- partial ('../user/_signup.ejs') %>
個現在
_signup.ejs
<div class="col-sm-12 col-md-12 col-lg-12" style="max-width:400px;">
<h1>Sign up</h1>
<form action="/user/create" method="post" role="form" class="form-signin">
<% if(flash && flash.err) { %>
<ul class="alert alert-success">
<% Object.keys(flash.err).forEach(function(err) { %>
<li> <%- JSON.stringify(flash.err[err]) %></li>
<% }) %>
</ul>
<% } %>
<div class="form-group control-group">
<label for="email"></label>
<input name="email" class="form-control" placeholder="Email" type="text"/>
</div>
<div class="form-group control-group">
<label for="password"></label>
<input name="password" class="form-control" placeholder="Password" id="password" type="password" title="Password"/>
</div>
<div class="form-group control-group">
<label for="passwordConfirmation"></label>
<input name="passwordConfirmation" class="form-control" placeholder="Confirm Password" type="password" title="Password"/>
</div>
<input type="submit" value="Signup" class="btn btn-success"/>
<input type="hidden" name="_csrf" value="<%= _csrf %>"/>
</form>
這沒有奏效,我仍然從'index.ejs'獲得'flash undefined'。我的下一個猜測是當地人沒有完全從'userController'傳遞。難道是因爲我在分配'req.session.flash'而不是'res.view'後重定向到root? – 2015-04-03 19:54:50
我已將我的代碼添加到原始問題中。 – 2015-04-03 19:59:28