2012-03-24 233 views
16

使用NODE_ENV=production時,我收到警告。這有什麼解決辦法?如何解決connection.session問題

警告:connection.session()MemoryStore的不是
設計用於生產環境,因爲它會泄漏
內存,顯然只有一個進程中運行。

+0

你的代碼是什麼? – Mustafa 2012-03-24 07:24:57

+2

看看這個答案: [http://stackoverflow.com/questions/10760620/using-memorystore-in-production#10761522][1] [1]:HTTP: //stackoverflow.com/questions/10760620/using-memorystore-in-production#10761522 – 2012-05-25 21:26:08

回答

8

將Redis用作會話管理器可能是個好主意。看起來好像您正在使用Express或Connect框架,並且對於其中的任何一個,您都可以使用npm包connect-redis(安裝了Redis)。隨着安裝的快遞代碼看起來像這樣:

var express = require ('express') 
    , RedisStore = require ('connect-redis') (express) 
    , sessionStore = new RedisStore() 
    , app = express.createServer() 
    ; 

app.configure (function() { 

    app.use (express.cookieParser()); 
    app.use (express.session ({ 
    secret: "keyboard cat", store: sessionStore, key: 'hello.sid' 
    })); 
... 
+0

我使用Redis進行會話存儲。但在這裏我只需要進行管理員身份驗證。這就是爲什麼我正在尋找簡單的解決方案 – 2012-03-24 21:18:59

+2

@GaneshKumar this [so question](http://stackoverflow.com/questions/8749907/what-is-a-good-session-store-for-a-single-host- node-js-production-app)專門處理您的問題。也許不是數據庫,你可能希望探索鏈接問題中描述的安全cookie路由。 – 2012-03-25 10:11:41

+0

謝謝audio.zoom – 2012-03-25 15:28:43