【发布时间】:2019-10-13 01:48:45
【问题描述】:
我有一个使用 express-sessions 的基本 node.js express 应用程序。
请有人帮忙解释为什么会话没有持续存在以及为什么为每个请求创建一个新会话。
应用程序本身非常大,因此我在下面添加了重要设置的简化案例。
const express = require('express');
const session = require('express-session');
const MongoDBStore = require('connect-mongodb-session')(session);
// initialise express
const app = express();
// initialise db session store
const store = new MongoDBStore({
uri: MONGODB_URI,
collection: 'sessions',
// can also set expire here for auto cleanup by mongodb
});
app.use(session({
secret: 'secret password',
resave: false,
saveUninitialized: false,
httpOnly: false,
secure: app.get('env') === 'production',
store,
}));
...routes
在用户登录路由中,应用程序将请求用户设置为会话并保存会话。预计此req,session.user 将在页面之间持续存在,但事实并非如此。在每个页面请求上,我都可以看到正在创建一个新会话(或者有时是多个会话,每个文件请求 1 个)。
【问题讨论】:
标签: node.js express express-session