2012-03-24 5 views
16

Я получаю предупреждение при использовании NODE_ENV=production. В чем причина?Как исправить проблему connection.session

Предупреждения: connection.session() MemoryStore не
предназначен для производственной среды, так как она будет течь
памяти, и, очевидно, работает только в рамках одного процесса.

+0

Каков ваш код? – Mustafa

+2

Взгляните на этот ответ: [http://stackoverflow.com/questions/10760620/using-memorystore-in-production#10761522][1] [1]: HTTP: //stackoverflow.com/questions/10760620/using-memorystore-in-production#10761522 –

ответ

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 для магазина сеансов. но здесь мне нужно только для аутентификации администратора. Вот почему я ищу простое решение –

+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, описанный в связанном вопросе. –

+0

thanks audio.zoom –