博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js刷新session过期时间
阅读量:5992 次
发布时间:2019-06-20

本文共 910 字,大约阅读时间需要 3 分钟。

在Node.js中,我们通常使用这个包来使用和管理session,保存服务端和客户端浏览器之间的会话状态。那如何才能实现当用户刷新当前页面或者点击页面上的按钮时重新刷新session的过期时间呢?类似于ASP.NET中session会话状态,只要在一定的时间内页面一直保持活动状态,session就不会过期。通过下面的代码可以实现这个功能,我们在Node.js的代码中加入下面的中间件:

复制代码
// use this middleware to reset cookie expiration time// when user hit page every timeapp.use(function(req, res, next){    req.session._garbage = Date();    req.session.touch();    next();});
复制代码

  这样,每次当有请求过来时,该中间件都会重新修改session的过期时间,从而达到预期的效果。

  然后,在代码中加入对session的使用:

复制代码
app.use(session({        secret: 'test',         resave: false,         saveUninitialized: true,        cookie:{            maxAge: 1000*60*60 // default session expiration is set to 1 hour        },        store: new MemcachedStore({            hosts: ['127.0.0.1:9000'],            prefix: 'test_'        })}));
复制代码

  上面的session使用了memcached作为session的存储方式,有关如何使用memcached可以参考Github上的这个地址

  当然,你也可以使用其它的session存储方式,例如memoryStore,redis,mongoDB等等,使用方法都大同小异。

转载地址:http://wntlx.baihongyu.com/

你可能感兴趣的文章
十一课堂|通过小游戏学习Ethereum DApps编程(4)
查看>>
linux以太坊开发环境搭建
查看>>
数据库:数据库优化(一)
查看>>
第十次课
查看>>
docker安装
查看>>
Netty 简单服务器 (三)
查看>>
负载均衡服务器nginx详细安装教程及网络部署
查看>>
分布式消息通信ActiveMQ原理-持久化策略-笔记
查看>>
MySQL中删除重复数据
查看>>
【synchronized底层原理之4】锁的升级过程及比较
查看>>
通配符及输入输出重定向、管道符和作业控制
查看>>
Mysql分库分表方案
查看>>
kafka模拟生产-消费者以及自定义分区
查看>>
Visual Paradigm 教程[UML]:如何在序列图中使用持续时间约束?
查看>>
比特币市场价格一直下跌,未来的市场价值归零的可能性大吗?
查看>>
Linux网络相关知识
查看>>
利用jmap和MAT等工具查看JVM运行时堆内存
查看>>
传统IDC(一)
查看>>
使用service实现登录、权限控制
查看>>
为什么 WebAssembly 更快?
查看>>