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) %>
现在我不确定出了什么问题,我已经尝试了在这里和通过谷歌找到的所有可能的修复方法,但它似乎并不想工作。
最佳答案
您需要使用错误/成功等键设置消息
req.flash('success', "hello flash");
并且您将在 res.locals 中获得相同的 key ,或者可以在呈现 View 时说出相同的 key
{% if success %}
<div class="alert alert-success alert-dismissable">
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
{{ success }}
</div>
{% endif %}
注意: 在 session cookie 中闪存存储 key ,消息仅刷新一次
关于javascript - Flash 消息无法正常工作 express/nodejs/ejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47785543/