我想知道为什么我的连接闪存无法正常工作。 我知道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"));
}
答案 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')
一样。