有没有办法可以通过服务器重启来维护用户会话,以帮助保持我的开发良好和快速?
我正在我的机器上本地处理ExpressJS节点项目.我正在使用Grunt-nodemon来查看我的JS文件,并在我进行更改后重新启动服务器.这意味着我的项目上的任何会话(用户登录)都被擦干净了.
目前,如果我在某个地方的某个深层页面并重新启动,我会被踢到登录页面并且必须重新导航,这真的令人沮丧.
我使用护照作为会话中间件.我正在使用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将会话存储在内存中,这意味着如果重新启动硬件,会话将丢失(但有一个选项可以使其保持不变http://redis.io/topics/persistence)
希望这有助于:)