使用express和MongoDB的node.js中的会话生存期
我正在使用node.js和express框架。 作为一个会议商店,我正在使用MongoDB。 如何设置从MongoDB删除会话对象的生命周期。 这是我如何做的声明:
app.use(express.cookieParser()); app.use(express.session({ secret: "Stays my secret", store: new MongoStore({ db: 'myDB' }) }));
你的问题有点含糊,但是从我所能得到的结果来看,你不能设置会话的到期时间:
你可以像这样使用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
的新版本需要expires
值,而maxAge
是针对旧版本的,您只需要expires
。
@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(这里也是会话)在服务器启动后一小时自动过期