0

我正在使用“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
}
}));

一旦用户从浏览器连接到根“/” url,就会在数据库中插入一条记录

 {
"_id": "EZ2sy6jHvnrlsyofqCrKVfPtp6hv5FX_",
"session": "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"name\":\"mongosession\"}",
"expires": ISODate("2016-06-14T15:19:15.548Z")
 }

我的问题是

  1. 为什么 originalMaxAge ,“会话”的过期键为空,需要修改什么以使这些键具有值。?

  2. 由于我已将 autoRemoveInterval 设置为 1 分钟,因此我假设数据库中的会话值将在 1 分钟内被删除,但事实并非如此 需要修改什么来实现这一点?

4

1 回答 1

0
  1. 配置 的cookie属性connect-session。默认情况下,maxAgeisnull使 cookie 成为(浏览器)会话 cookie。
  2. 设置 的ttl属性connect-mongo,默认为 14 天(根据属性中的时间戳判断,看起来差不多expires)。autoRemoveInterval仅配置connect-mongo检查是否有任何会话应过期的频率。
于 2016-06-01T07:44:06.187 回答