2017-08-17 41 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 
})); 

我是否應該重新保存並saveUnitialized設置爲true或Redis的雲和的Heroku的情況下,會話存儲錯誤(使用快遞會話)?

此外,cookieParser會影響會話,需要在那裏?或者是單獨解析來自客戶端的Cookie,並且與Redis的服務器端會話存儲無關?另外,如果cookie解析器有一個祕密傳遞給函數?

最後,bodyParser應該在server.use(session)之前還是之後,並且應該將urlencoded extended設置爲true或false?

+0

這段代碼是否適合你?如果不是觀察到的行爲和預期的是什麼? –

回答

0

讓我們從部分去,爲開膛手傑克說...

目前還不清楚什麼是使用Redis的雲和的Heroku的情況下使用是 正確的配置參數,並可以在線查找 正常運行的示例。

RedisCloud on Heroku (Node Express Example) @ GitHub

我是否應該重新保存並saveUnitialized設置爲true或false在 情況下,Redis的雲和的Heroku作爲會話存儲(使用 快遞會話)?

app.use(expressSession({resave: false, saveUninitialized: false}))減少會話存儲將被訪問的次數。這有利於硬件資源和性能(通常最好將它們設置爲false)。

此外,cookieParser會影響會話,需要在那裏是 ?

現在不一樣了:express-session中間件,用於要求cookie-parser,(但express-session當前版本的讀取/寫入直接餅乾)。

最後,應先跌後 server.use(會話)bodyParser來

body-parser中間件分析傳入的HTTP請求的屍體。填充req.body屬性,然後在您的路由和中間件中可用。所以訂單不會影響行爲。

並且應將urlencoded擴展設置爲true或 爲false?

您將需要的解析器取決於您的服務器必須處理的請求類型。

關於擴展:false和extended:true的區別是already explained in this answer

相關問題