req.flash()需要会话

时间:2013-10-03 20:10:27

标签: node.js express

我在浏览时遇到问题。我正在使用connect-flash。

有我的配置

app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('secret'));
app.use(express.session());
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use(function(req, res, next){
  res.locals.flash = req.flash
  next()
})

这里我在控制器操作

设置了flash消息
exports.new = function(req, res){
  req.flash('info', 'test')

  res.render("session/new", {
    title: 'Log In!'
  })
}

然后,当我尝试在视图中使用flash('info')时,我收到此错误

  

req.flash()需要会话

我是nodejs的新手,请原谅我,如果这是一个愚蠢的问题。

3 个答案:

答案 0 :(得分:2)

也许您在将Flash数据传递给req.session.destroy()之前调用了res.locals

答案 1 :(得分:0)

查看this链接。您似乎必须在配置您的快速服务器时指定它。

答案 2 :(得分:0)

尝试使用Redirect而不是render

例如。

res.redirect('session/new');