永久会话存储在节点中
我有一个节点服务器现在运行,我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中使用他们的会话数据。