永久会话存储在节点中

我有一个节点服务器现在运行,我npm forever使用npm forever保持运行,当我不开发,我用npm nodemon当我编辑(重新启动应用程序编辑/上传)。

我注意到,每当我重新启动我的应用程序,会话数据丢失,我的球员不得不重新login到他们的帐户。 这不是一个huuuge交易,但我想知道是否有一种方式来编辑我的server.js页面,而无需重新启动应用程序,并logging每个人?

(请注意,这仅适用于server.js或模块编辑, .html.js页面不需要重新启动)

(第二个注意:我正在使用mysql,nodejs,angularjs,express.io所有这些,以防万一有人问)

没有办法编辑文件(并加载更改)而无需重新启动服务器并重新加载文件。 相反,将会话数据存储在内存以外的其他位置。 我知道你使用的是MySQL,所以使用connect-mysql软件包(还有其他类似redis,MongoDB等的软件包)。

这就像把它放在你的app.js文件中一样简单:

 var MySQLStore = require('connect-mysql')(express) , options = { config: { host : 'place.stuff', user: 'RUJordan', password: 'hunter2', database: 'SomeKittensIsGreat' } }; app.use(express.session({ secret: 'UpvoteThisAnswer', store: new MySQLStore(options), cookie: { maxAge: 2592000000 } // 30 days })); 

这会在每个用户的计算机上放置一个仅HTTP(即用户无法看到/使用它)的cookie。 即使在服务器重新启动之后, connect-mysql也可以通过这个cookie在MySQL中使用他们的会话数据。