我正在使用" connect-mongo"节点模块,用于在mongodb中存储会话数据。
以下是与配置connect-mongo相关的代码
const cookieParser = require('cookie-parser');
app.use(cookieParser());
const session = require('express-session');
const mongoStore = require('connect-mongo')(session);
app.use(session({
secret: "test",
store: new mongoStore({
url: mongodbURL,
collection : 'sessions',
autoRemove: 'interval',
autoRemoveInterval: 1 // In minutes. Default
}
}));
用户连接root" /"来自浏览器的URL,正在插入记录 在数据库中
{
"_id": "EZ2sy6jHvnrlsyofqCrKVfPtp6hv5FX_",
"session": "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"name\":\"mongosession\"}",
"expires": ISODate("2016-06-14T15:19:15.548Z")
}
我的问题是
为什么原始的MaxAge会使" session"的键过期?是null和 什么需要修改,以便这些键具有值。?
由于我已将autoRemoveInterval设置为1分钟,因此我假设该会话 数据库中的值将在1分钟内删除,但情况并非如此 需要修改什么来实现这一目标?
答案 0 :(得分:0)
connect-session
的{{3}}属性。默认情况下,maxAge
为null
,使Cookie成为(浏览器)会话Cookie。connect-mongo
的{{3}}属性,默认为14天(通过expires
属性中的时间戳判断为正确)。 autoRemoveInterval
仅配置connect-mongo
检查是否有任何会话过期的频率。