3

我了解req.flash()已从 express 3.x ( source ) 中删除,建议req.session直接使用 (ie, req.session.messages)。

这不是问题,但是我很难弄清楚如何在重定向后在布局中显示此信息。我试过类似的东西

app.locals.messages = function() { return req.session.messages };

但我们显然无权访问该req对象。

req.session.messages重定向后如何显示内容?

4

2 回答 2

19

做就是了:

app.use(/* my session middleware */)
app.use(function(req, res, next) {
  res.locals.messages = req.session.messages
  next()
})

你将永远messages在你的视野中。它真的不必比这更复杂。

如果需要,您可以添加自己的flash功能。

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()

于 2012-09-03T22:55:22.797 回答
1

You can also use connect-flash https://github.com/jaredhanson/connect-flash

于 2013-09-14T23:46:01.730 回答