Session 使用express和MongoDB的node.js中的会话生存期

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' })

我在express框架中使用node.js。作为会话存储,我使用MongoDB。如何设置从MongoDB删除会话对象后的生存期。我就是这样做的:

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