刷新后 express-flash 消息为空

express-flash messages are empty after refresh

express-flash 模块无法正常工作。当我添加一条消息时,在下一页刷新时它是空的。

这是我的一部分 app.js:

var flash = require('express-flash');
var session = require('express-session');
app.use(session({
  secret: 'keyboard ctrl',
  resave: false,
  saveUninitialized: true,
  cookie: { maxAge: 60000 }
}))
app.use(flash());
app.get( '/', login);

这是在我的登录模块中

exports.login = function(req, res){
    console.log(req.flash('error'));
    req.flash('error','Test errors!');
    res.render('user_login');
};

当我多次刷新页面时,日志输出总是一个空数组。

express-flash 扩展了 connect-flash,因此您不需要重定向(或新页面加载)就可以使用快闪消息。

它通过修补 res.render() 来检索所有 flash 消息,因此它们可以作为 messages 在您的模板中使用。

但是,在检索所有闪信后,消息列表将被清空,因为假定它们在检索时就已被使用。这就是 connect-flash 的工作原理。

因此在您的登录处理程序中调用 res.render 后,消息列表将为空。

在页面重新加载时保持闪现消息列表的实现并非易事,因为您必须确定是重新加载还是 "normal" 页面加载。