由于这是我在这里提出的第一个问题,我将尝试尽可能具体。 我使用express 4和connect-redis模块来存储我的会话。出于某种原因,当我启动节点应用程序时,我注意到有关redis的2个会话。这将继续,redis的会议将继续起来。这怎么可能?我的意思是甚至没有使用我的浏览器?
据我所知,会话绑定到浏览器上创建的cookie。那么所有其他redis会议的来源呢?由于环境是本地的,redis上应该只有一个会话吗?
更新 这是我的server.js代码:
var http = require( 'http' )
, compress = require( 'compression' )
, methodOverride = require( 'method-override' )
, cookieParser = require( 'cookie-parser' )
, bodyParser = require( 'body-parser' )
, session = require( 'express-session' )
, express = require( 'express' )
, passport = require( 'passport' )
, redis = require( 'redis' )
, RedisStore = require( 'connect-redis' )( session );
var app = express();
app.enable('trust proxy');
var config = require( './configs' );
var port = process.env.PORT || config.env_port;
app.use(compress());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json({limit:'1mb'}));
app.use(methodOverride());
app.use(cookieParser('secret'));
/**
* REDIS SESSION STORE
*/
var ses = redis.createClient(config.redis.port, config.redis.host);
ses.auth(config.redis.pass);
var session_routes = '(?!\/api)(*)'
app.use(session_routes, session({
secret : 'secret',
cookie : { maxAge: 7200000 }, //2 hours
rolling : true,
saveUninitialized: true,
resave: true,
rolling: true,
store : new RedisStore({ client: ses })
}));
app.use( session_routes, passport.initialize() );
app.use( session_routes, passport.session() );
app.listen(port, function() {
console.log(" Listening on " + port);
});