0

堆栈: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.use(flash());在我的 app.js 文件中。

我唯一能想到的是我需要在我的路由文件中设置会话。但是多次设置会话似乎是错误的。我确实需要我在下面设置会话和闪存的路线。

知道这里发生了什么吗?

错误信息:

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,那么它会发送没有错误的消息。

4

0 回答 0