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之锁定表格栏位
Jun 29 Javascript
asp.net刷新本页面的六种方法总结
Jan 07 Javascript
JS实现选择TextArea内文本的方法
Aug 03 Javascript
JavaScript常用数组算法小结
Feb 13 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
Jun 30 Javascript
Angularjs 创建可复用组件实例代码
Oct 09 Javascript
使用Angular.js开发的注意事项
Oct 19 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
vue mounted组件的使用
Jun 18 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
Mar 07 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
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
PHP 代码规范小结
2012/03/08 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
vue 监听屏幕高度的实例
2018/09/05 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
HTML5地理定位实例
2014/10/15 HTML / CSS
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
港湾网络笔试题
2014/04/19 面试题
计算机专业毕业生推荐信
2013/11/25 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
感谢信范文大全
2015/01/23 职场文书
支行行长岗位职责
2015/02/15 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers