代码之家  ›  专栏  ›  技术社区  ›  rostamiani

刷新后Express Flash消息为空

  •  0
  • rostamiani  · 技术社区  · 6 年前

    快速闪存模块工作不正常。当我添加消息时,在下一页刷新时它是空的。

    这是我的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 回复  |  直到 6 年前
        1
  •  1
  •   robertklep    6 年前

    express-flash 延伸 connect-flash 因此,在闪存消息可用之前,不需要重定向(或新页面加载)。

    它是通过修补 res.render() 以检索所有Flash消息,使其成为可用的 messages 在模板中。

    但是,在检索完所有闪存消息后,消息列表将被清空,因为假定检索到这些消息时会使用它们。就是这样 连接闪存 作品。

    所以打电话之后 res.render 在登录处理程序中,消息列表将为空。

    在页面重新加载过程中保持一个闪存消息列表并不容易实现,因为您必须确定某个内容是重新加载还是“正常”页面加载。