2017-10-15 100 views
0

當我到我的應用程序被推送到Heroku時,需要很長時間才能加載。我等待它加載,但它有一個錯誤。奇怪的是,昨天去網站很好,我今天晚些時候也能夠正常加載網站。然而,當我得到了錯誤,我查Heroku的日誌,並得到了這樣的警告:Heroku日誌中這條警告​​的意思是什麼

2017-10-15T06:19:09.735366+00:00 app[web.1]: > node index.js 
2017-10-15T06:19:09.735365+00:00 app[web.1]: > [email protected] start /app 
2017-10-15T06:19:09.735367+00:00 app[web.1]: 
2017-10-15T06:19:10.515212+00:00 app[web.1]: Warning: connect.session() MemoryStore is not 
2017-10-15T06:19:10.515232+00:00 app[web.1]: designed for a production environment, as it will leak 
2017-10-15T06:19:10.515233+00:00 app[web.1]: memory, and will not scale past a single process. 

我得到在我的代碼的東西是不適合生產,但我不知道這是指它的我的代碼部分至。我使用passport.js進行授權,並使用Google和Facebook策略進行連線,並且在我的index.js中使用express-session軟件包。這是警告指向的是什麼?有人可以解釋這個警告可能意味着什麼嗎?

回答

1

您正在使用connect-session模塊,它處理HTTP會話(顯然)。出現此警告是因爲您未將模塊配置爲使用存儲會話數據(數據庫,文件等)的任何其他方式。當你這樣做時,connect-session使用內存作爲會話存儲。

但是,這不適合於生產環境。它有內存泄漏,這意味着你的應用程序會經常崩潰。

更重要的是,它不能在雲環境(如Heroku或Amazon Cloud或Google Cloud Platform)中正常工作,因爲在這樣的環境中,您的應用運行在多個實例中。存儲在應用程序實例中的會話數據將無法從其他實例訪問。這將導致用戶反覆註銷,等等。