Flash消息似乎无法正常工作,我认为我遗漏了一些非常明显的东西,但我已经花了一个小时,而且我仍然不知道为什么它不起作用。
我的中间件:
// Session middleware
app.use(session({
secret: 'stuffedbagels',
resave: true,
saveUninitialized: true
}));
// Express Messages middleware
app.use(require('connect-flash')());
app.use(function(req, res, next) {
res.locals.messages = require('express-messages')(req, res);
next();
});
应用程序路由,仅用于测试目的。
// Route that creates a flash message using the express-flash module
app.all('/express-flash', function( req, res ) {
req.flash('success', 'This is a flash message using the express-flash module.');
res.redirect(301, '/');
});
模板(从他们的github复制)
<div id="messages">
<% Object.keys(messages).forEach(function (type) { %>
<ul class="<%= type %>">
<% messages[type].forEach(function (message) { %>
<li><%= message %></li>
<% }) %>
</ul>
<% }) %>
</div>
我如何渲染
<%- messages('msg_temp', locals) %>
现在我不确定出了什么问题,而且我已经尝试了我在这里找到的所有可能的解决办法,并通过谷歌,但它似乎并不想要工作
答案 0 :(得分:0)
您需要使用错误/成功等密钥设置消息
<%= f.date_field :ends_from, as: :date, value: f.object.try(:strftime,"%d/%m/%Y") %>
你可以在res.locals中获得相同的密钥,或者可以在视图上呈现时说出
req.flash('success', "hello flash");
注意:强> 会话cookie中的flash存储密钥,消息只刷新一次