我知道req.flash()已从express 3.x( source)中删除,建议直接使用req.session(即req.session.messages). 这不是问题,但是我很难弄清楚重定向后如何在布局中显示这些信息.我尝试过类似的东西 app.locals.
这不是问题,但是我很难弄清楚重定向后如何在布局中显示这些信息.我尝试过类似的东西
app.locals.messages = function() { return req.session.messages };
但我们显然无法访问req对象.
如何在重定向后显示req.session.messages的内容?
做就是了:app.use(/* my session middleware */) app.use(function(req, res, next) { res.locals.messages = req.session.messages next() })
并且您将始终在视图中显示消息.它真的不必再复杂了.
如果需要,您可以添加自己的闪光功能.
app.use(function(req, res, next) { var session = req.session; var messages = session.messages || (session.messages = []); req.flash = function(type, message) { messages.push([type, message]) } next() })
在您的视图中,只需执行message = messages.pop().