nodejs+ express session持久化动态存储

1.采用redis存储 session,需要使用高版本的redis,windows环境下面的不支持(版本较低)

2.在express工程中配置,

function initSessionRedis(){
    const redis = require('redis');
    const redisStore= require('connect-redis')(session);
    var _config = require('./src/config/ServerConfig');
    var configObj = _config.GetServerConfig();
    var _conn_options = {"host":"127.0.0.1","port":6379,"auth_pass":"","dbindex":2};
    if(configObj&&configObj.session_redis&&configObj.session_redis.isvalid){
        _conn_options = configObj.session_redis;
        if(_conn_options==undefined||_conn_options.isvalid!=true){
            log4.infoLog("***系统未配置Session会话持久存储***");
            return;
        }
        let _hours = _conn_options.session_hour?parseInt(_conn_options.session_hour):24;
        var _rClient = redis.createClient(_conn_options);

        var _store = new redisStore({client:_rClient,prefix: 'session:'});
        let _rt = app.use(session({
            secret: '147852',
            saveUninitialized:false,
            resave:false,
            store:_store,
            cookie:{maxAge: 1000*60*60*_hours} // default session expiration is set to 1 hour
        }));
        log4.infoLog("***初始化Session会话持久存储成功***");

        _rClient.on('error', function (err) {
            log4.errorLog("!!!创建Session会话持久存储失败,请检查server.json中redis连接参数!!!");
            _rClient&&_rClient.quit();
        });
    }else{
        app.use(session({
            secret: '147852',
            resave: true,
            saveUninitialized: false
        }));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一醉千秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值