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

expires新しいバージョンの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

サーバーの起動から1時間後に、すべてのCookie(ここではセッションも)が自動的に期限切れになります

于 2013-12-18T12:09:17.360 に答える