这个要点应该回答你的问题:
https://gist.github.com/raddeus/11061808 https://gist.github.com/raddeus/11061808
在您的应用程序设置文件中:
app.use(flash());
在设置会话和 cookie 解析器之后立即将其放置。这确实是您使用闪光灯所需的全部内容。
您正在使用:
req.flash('signupMessage', anyValue);
在重定向到 /signup 之前对吗?
这是我目前用于个人网站的一个有趣的小花絮(在我的主应用程序文件中):
app.use(function(req, res, next){
res.locals.success_messages = req.flash('success_messages');
res.locals.error_messages = req.flash('error_messages');
next();
});
现在,每个视图都可以访问您闪现的任何错误或成功消息。对我来说效果很好。
最后一件事(这有点挑剔,但你可能会获得一些知识)。如果你改变:
<% if (message.length > 0) { %>
to:
<% if (message) { %>
它将以相同的方式工作,但如果消息未定义,则不会失败。在 JavaScript 中,未定义的字符串和空字符串都被视为“假”值。
编辑:我的 cookie/会话/flash 设置如下:
app.use(cookieParser('secretString'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());
也许查看您的应用程序设置代码会有所帮助。另请注意,在 Express 4 中不再需要使用 app.configure。
最终编辑:https://gist.github.com/raddeus/11061808 https://gist.github.com/raddeus/11061808
这是一个有效的例子。运行该应用程序后转到 localhost:3000,您应该看到['it worked']
在你的屏幕上。