有没有办法在服务器重新启动时保持用户会话,以帮助保持我的开发速度?
我正在本地机器上开发ExpressJS节点项目。我使用Grunt-nodemon监视我的JS文件,并在进行更改后重新启动服务器。但这意味着我的项目中的任何会话(有一个用户登录)都将被清除。
目前,如果我在某个深层页面中并重新启动,我将被踢出到登录页面,并必须重新导航,这真的很令人沮丧。
我正在使用passport作为会话中间件。我正在使用mongoose作为我的主要应用程序数据存储,如果可以以某种方式使用它就太好了。
有没有办法在服务器重新启动时保持用户会话,以帮助保持我的开发速度?
我正在本地机器上开发ExpressJS节点项目。我使用Grunt-nodemon监视我的JS文件,并在进行更改后重新启动服务器。但这意味着我的项目中的任何会话(有一个用户登录)都将被清除。
目前,如果我在某个深层页面中并重新启动,我将被踢出到登录页面,并必须重新导航,这真的很令人沮丧。
我正在使用passport作为会话中间件。我正在使用mongoose作为我的主要应用程序数据存储,如果可以以某种方式使用它就太好了。
只需使用任何存储方法即可实现。
其中一种选择是使用Redis。
以下是使用 connect-redis
模块的示例:
app.use(express.cookieParser());
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
app.use(express.session(
{
store: new RedisStore(
{
host: '127.0.0.1', //where redis store is
port: 6379, //default redis port
prefix: 'sess', //prefix for sessions name is store
pass: 'passwordtoredis' //password to redis db
}
),
secret: 'cookiesecret', //cookie secret
key: 'express.sid'
}
));
虽然可以更简洁,但它应该运行良好。
设置Redis非常容易; Redis网页有一个很好的教程:http://redis.io/topics/quickstart
请记住,默认情况下,Redis将会把 session 存储在内存中,这意味着如果您重新启动硬件,则会丢失session(但有一种选项可以使其持久化http://redis.io/topics/persistence)
希望这可以帮助到您:)