有没有办法可以通过服务器重启来维护用户会话,以帮助保持我的开发良好和快速?
我正在我的机器上本地处理ExpressJS节点项目。我使用Grunt-nodemon观看我的JS文件,并在我做了更改后重新启动服务器。这意味着我的项目中的任何会话(用户登录)都被擦干净了。
目前,如果我在某个深层页面并重新启动,我会跳到登录页面并重新导航,这真的令人沮丧。
我使用护照作为会话中间件。我使用mongoose作为我的主要应用程序数据存储区,如果我能以某种方式使用它将是超级的。
答案 0 :(得分:7)
只需简单使用任何存储方法即可。
一种选择是使用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会将会话存储在内存中,这意味着如果重新启动硬件,会话将会丢失(但有一个选项可以使其保持http://redis.io/topics/persistence)
希望这有助于:)