刷新后快速Flash消息为空

时间:2018-09-11 07:30:00

标签: javascript node.js express session flash-message

快速闪光模块无法正常工作。添加消息时,下一页刷新时消息为空。

这是我的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');
};

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

1 个答案:

答案 0 :(得分:1)

express-flash扩展了connect-flash,因此在Flash消息可用之前,您不需要重定向(或新页面加载)。

它通过修补res.render()来检索所有即时消息来实现,因此它们可以在模板中以messages的形式使用。

但是,在检索所有Flash消息之后,将清空消息列表,因为假定在检索消息时会使用它们。 connect-flash就是这样工作的。

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

要在整个页面重新加载之间保留Flash消息列表并不是一件容易的事,因为您必须确定是重新加载还是“正常”页面加载。