2017-10-15 102 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)中正常工作,因为在这样的环境中,您的应用运行在多个实例中。存储在应用程序实例中的会话数据将无法从其他实例访问。这将导致用户反复注销,等等。