我正在使用带有express框架的node.js。作为会话商店,我正在使用MongoDB。如何设置从MongoDB中删除会话对象的生命周期。这就是我做声明的方式:
app.use(express.cookieParser());
app.use(express.session({
secret: "Stays my secret",
store: new MongoStore({ db: 'myDB' })
}));
答案 0 :(得分:7)
你的问题有点模糊,但从我可以收集的内容中你不想设置会话的有效期:
你可以这样使用maxAge
:
app.use(express.cookieParser());
app.use(express.session({
secret : "Stays my secret",
maxAge : new Date(Date.now() + 3600000), //1 Hour
expires : new Date(Date.now() + 3600000), //1 Hour
store : new MongoStore({ db: 'myDB' })
}));
新版本的快递需要 expires
值,其中maxAge
适用于旧版本,但您只需要expires
。
答案 1 :(得分:1)
@RobertPitt编辑你的答案。 Cookie(会话)对象如下所示:
{
"cookie":"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},
"your_var_1":"value 1",
"your_var_2":"value 2",
...
}
express.session
的参数应如下所示(在文档中):
app.use(express.session({
secret : "Stays my secret",
cookie: {
maxAge : new Date(Date.now() + 3600000), //1 Hour
expires : new Date(Date.now() + 3600000), //1 Hour
},
store : new MongoStore({ db: 'myDB' })
}));
此外:
maxAge : new Date(Date.now() + 3600000), //1 Hour
将导致每个Cookie(此处也是会话)将在服务器启动后一小时自动过期