【Express】session 以及redis store

Express有个中间件express-session,使用了该中间件后,代表客户端请求的http.IncomingMessage对象就有了一个session属性,保存了session数据

即请求路由中可直接使用req.session

app.use(express.session({

            secret:'lww',

            name:'lwwtest',

            cookie:{maxAge:1800}

}));

app.get("/",function(req,res){

  req.session.user="lww"; 

});

app.get("/user",function(req,res){

console.log(req.session.user);

});

这样控制台就会打印出lww

另外可能session的认证机制离不开cookie,所以要搭配使用cookieParse中间件

在使用该中间件前要加一句

app.use(cookieParse());

Express还有个中间件connect-redis,将session存储在redis中

var RedisStore = require('connect-redis')(session);

app.use(session({
   secret: settings.session_secret,
   store: new RedisStore({
   port: settings.redis_port,
   host: settings.redis_host,
   pass : settings.redis_psd,
   ttl: 1800 // 过期时间s
   }),
   resave: true,
   saveUninitialized: true
}));

原文地址:https://www.cnblogs.com/lww930/p/5607477.html