Node.js刷新session过期时间的实现方法推荐


Posted in Javascript onMay 18, 2016

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

// use this middleware to reset cookie expiration time
// when user hit page every time
app.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上的这个地址https://github.com/balor/connect-memcached

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

以上这篇Node.js刷新session过期时间的实现方法推荐就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
Jul 04 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
Nov 05 Javascript
详解javascript实现自定义事件
Jan 19 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
Jul 12 Javascript
express文件上传中间件Multer详解
Oct 24 Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
Webpack打包字体font-awesome的方法示例
Apr 26 Javascript
微信小程序实现手势滑动卡片效果
Aug 26 Javascript
es6函数之rest参数用法实例分析
Apr 18 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
Jun 05 Javascript
react中hook介绍以及使用教程
Dec 11 Javascript
JS+Canvas 实现下雨下雪效果
May 18 #Javascript
如何判断Javascript对象是否存在的简单实例
May 18 #Javascript
jquery遍历json对象集合详解
May 18 #Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 #Javascript
js验证框架实现代码分享
May 18 #Javascript
在JavaScript中对HTML进行反转义详解
May 18 #Javascript
深入理解JavaScript中的浮点数
May 18 #Javascript
You might like
Nginx实现反向代理
2017/09/20 Servers
PHP实现文件上传操作和封装
2020/03/04 PHP
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
Python 备份程序代码实现
2017/03/06 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
python 读取数据库并绘图的实例
2019/12/03 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
新锐科技Java程序员面试题
2016/07/25 面试题
一名毕业生的自我鉴定
2013/12/04 职场文书
医院护士的求职信
2014/01/03 职场文书
感恩寄语大全
2014/04/11 职场文书
小学校本培训方案
2014/06/06 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python