7

我正在使用带有 express 框架的 node.js。作为会话存储,我使用的是 MongoDB。如何设置从 MongoDB 中删除会话对象的生命周期。这就是我做声明的方式:

app.use(express.cookieParser());
    app.use(express.session({
                secret: "Stays my secret",
                store: new MongoStore({ db: 'myDB' })
                    }));
4

2 回答 2

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

expiresvalue 是 express 的新版本所必需的,maxAge而旧版本也是如此,但您应该只需要expires

于 2011-04-17T22:14:42.767 回答
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(这里也是会话)将在服务器启动一小时后自动过期

于 2013-12-18T12:09:17.360 回答