使用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(这里也是会话)在服务器启动后一小时自动过期