2017-08-17 10 views
10

正しい設定パラメータがRedis CloudとHerokuを使用している状況では不明で、オンラインで機能する例は見つかりません。ここでRedis CloudとHerokuによるノードセッションストレージの適切な設定

は私の現在のコードです:

const express = require('express') 
const session = require('express-session') 
const RedisStore = require('connect-redis')(session); 
... 
const server = express() 

server.use(bodyParser.json()) 
server.use(bodyParser.urlencoded({ extended: false })) 

server.use(cookieParser()) 

server.use(session({ 
    secret: token_secret, 
    // create new redis store. 
    store: new RedisStore({ url: 'redis://rediscloud:[email protected]:11111'}), 
    resave: true, 
    saveUninitialized: true 
})); 

は私が再保存を持っているし、(特急・セッションを使用して)セッションストアとしてRedisのクラウ​​ドとHerokuの場合にはtrueまたはfalseに設定saveUnitializedべきでしょうか?

さらに、cookieParserはセッションに影響を及ぼし、そこに存在する必要がありますか?それとも、クライアントから来ているCookieを解析するだけで、Redisのサーバー側のセッションストレージとは無関係ですか?また、クッキーパーサーは秘密を関数に渡す必要がありますか?

最後に、bodyParserはserver.use(session)の前後に来る必要があります。また、urlencoded extendedをtrueまたはfalseに設定する必要がありますか?

+0

このスニペットはあなたのために機能したのですか?観察された行動と期待されたことは何もなかったのでしょうか? –

答えて

0

切り裂きジャックが言ったように...

を使用する正しい設定パラメータは、Redisのクラウ​​ドとHerokuのを使用しての状況で あり、そしてできているかは不明である、の部分で行こうオンラインで の機能例が見つかりません。

RedisCloud on Heroku (Node Express Example) @ GitHub

私は再保存を持っているし、( 特急・セッションを使用して)セッションストアとしてRedisのクラウ​​ドとHerokuのの 場合にはtrueまたはfalseに設定saveUnitializedべきでしょうか?

app.use(expressSession({resave: false, saveUninitialized: false}))は、セッションストアにアクセスする回数を減らします。これは、ハードウェアリソースとパフォーマンスに利益をもたらします(通常、それらをfalseに設定する方が良い)。

また、cookieParserがセッションに影響を与え、 にする必要がありますか?もう

ない:express-sessioncookie-parserを必要とするために使用するミドルウェア、(しかしexpress-sessionの現在のバージョンは/直接クッキーの読み書きを行います)。

そして最後に、bodyParserはbody-parserミドルウェアは、着信HTTPリクエストのボディを解析し server.use(セッション)

の前または後に来る必要があります。あなたのルートとミドルウェアで利用可能なreq.bodyプロパティを入力します。したがって、順序は動作に影響しません。

urlencoded extendedをtrueに設定するか、 falseに設定する必要がありますか?

必要なパーサーは、サーバーが処理する必要のある要求の種類によって異なります。

拡張に関する偽と拡張の違いは、already explained in this answerです。

関連する問題