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