Node JS(Express)connect-flash无法处理重定向操作

时间:2018-03-13 01:35:07

标签: node.js express flash message connect-flash

我想知道为什么我的连接闪存无法正常工作。 我知道connect-flash尝试将消息保存到会话中。 所以我宣布这样的会议:

app.use(session());

然后我设置了flash:

app.use(flash());

问题在于,当我使用connect-flash时,它没有显示重定向动作后设置的消息。

req.flash('flash_var', 'ok');
res.redirect('/mail/send');

我无法在' / mail / send'上看到任何消息。路由器。

app.get('/mail/send', function(req, res) {
  res.render('mail/console', {
    console.log("flash : "+req.flash('flash_var'); // null
    message: req.flash('flash_var')
  });
});

控制台消息正在打印空值,上一步似乎没有正常发送值。当然,我没有看到任何' flash_var'在ejs页面。

我的代码出了什么问题?

if(req.flash("flash_var") != ""){
  flash_var = req.flash("flash_var");
  console.dir("flash_var dir : "+req.flash("flash_var"));
}

1 个答案:

答案 0 :(得分:0)

您不使用req.flash('flash_name')来获取Flash消息。你要做的是req.flash()['flash_name']。在您的情况下,res.render选项对象中的消息值将为req.flash()['flash_var']req.flash()不是单独的getter,它返回一个包含请求对象上所有闪存的对象。另一种使用req.flash()的方法是使用两个字符串输入,就像使用req.flash('flash_var', 'ok')一样。