Session 使用express和MongoDB的node.js中的会话生存期
我在express框架中使用node.js。作为会话存储,我使用MongoDB。如何设置从MongoDB删除会话对象后的生存期。我就是这样做的:Session 使用express和MongoDB的node.js中的会话生存期,session,mongodb,node.js,express,lifetime,Session,Mongodb,Node.js,Express,Lifetime,我在express框架中使用node.js。作为会话存储,我使用MongoDB。如何设置从MongoDB删除会话对象后的生存期。我就是这样做的: app.use(express.cookieParser()); app.use(express.session({ secret: "Stays my secret", store: new MongoStore({ db: 'myDB' })
app.use(express.cookieParser());
app.use(express.session({
secret: "Stays my secret",
store: new MongoStore({ db: 'myDB' })
}));
您的问题有点含糊,但从我收集到的信息来看,您不需要设置会话的过期期限: 您可以这样使用:
expires
值对于新版本的express是必需的,因为maxAge
对于旧版本,您应该只需要expires
。@RobertPitt编辑您的答案。
Cookie(会话)对象看起来像:
{
"cookie":"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},
"your_var_1":"value 1",
"your_var_2":"value 2",
...
}
express.session的参数应如下所示(在文档中):
此外,这:
maxAge : new Date(Date.now() + 3600000), //1 Hour
将导致每个cookie(此处还有会话)在服务器启动一小时后自动过期谢谢。maxAge的计时器是在每次使用会话时重置的,还是从会话创建开始计数的?基于,看起来您使用设置的日期调用的是“expires”键,而不是“maxAge”。maxAge应该是一个年龄(例如,以毫秒为单位的值),而不是将来的时间。@UpTheCreek我相信单位是秒而不是毫秒。。。有人能确认吗?@RoberPitt,这里是MongoStroe的用途,以及在会话超时后它将如何从数据库中删除?你能解释一下吗
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