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 相关文章推荐
简单实用的js调试logger组件实现代码
Nov 20 Javascript
原生js 秒表实现代码
Jul 24 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 Javascript
关于JQuery($.load)事件的用法和分析
Apr 09 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
ECMAScript6快速入手攻略
Jul 18 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
Angular4的输入属性与输出属性实例详解
Nov 29 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
Dec 14 Javascript
vue、react等单页面项目应该这样子部署到服务器
Jan 03 Javascript
Vue页面跳转传递参数及接收方式
Sep 09 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
NOT NULL 和NULL
2007/01/15 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
一个加载js文件的小脚本
2007/06/28 Javascript
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
python虚拟环境完美部署教程
2019/08/06 Python
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
工伤赔偿协议书
2014/04/15 职场文书
群众路线调研报告范文
2014/11/03 职场文书
史上最牛辞职信
2015/05/13 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书