在快速3.x中重定向后显示闪光灯

Fee*_*ech 3 node.js express

我知道req.flash()已从快递3.x()中删除,建议req.session直接使用(即req.session.messages).

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

app.locals.messages = function() { return req.session.messages };
Run Code Online (Sandbox Code Playgroud)

但我们显然无法访问该req对象.

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

Jon*_*Ong 18

做就是了:

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

你会永远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()
})
Run Code Online (Sandbox Code Playgroud)

在你看来只是做message = messages.pop().