req.flash()需要会话,但存在会话

时间:2018-08-01 20:43:16

标签: node.js express session connect-flash

堆栈:Mongo / Redis,Express和Node

我将我的会话设置为大多数其他Stack Overflow帖子所指向的会话。我正在使用Redis作为会话存储。这是我的会话设置:

app.use(session({
  resave: true,
  saveUninitialized: false,
  cookie: {
    maxAge: 60 * 1000 * 60 * 24 * 30 // 30 days
  },
  secret: config.sessionSecret,
  store: new RedisStore({
    url: config.redisDB,
    auto_reconnect: true
  })
}));

这是我app.js文件中app.use(flash());之前的内容。

我唯一能想到的是我需要在我的路线文件中设置会话。但是多次建立会话似乎是错误的。我确实需要在以下设置会话和Flash的位置进行路由。

有什么想法吗?

错误消息:

req.flash() requires sessions

堆栈跟踪指向app.js的第55行,即res.locals.error = req.flash("error");

那是在我呼叫路线之前,但在我设置会话之后。如果我将其注释掉,则它指向所调用的路线。在这种情况下,索引路径为

app.get('/', function(req, res) {
    res.render('index.ejs'); // load the index.ejs file
});

如果我将res.render更改为res.send,则它发送的消息没有错误。

0 个答案:

没有答案