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 版
Mar 24 Javascript
prototype 中文参数乱码解决方案
Nov 09 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 Javascript
JS获取网页属性包括宽、高等等
Apr 03 Javascript
VS2008中使用JavaScript调用WebServices
Dec 18 Javascript
jQuery实现友好的轮播图片特效
Jan 12 Javascript
JS长整型精度问题实例分析
Jan 13 Javascript
javascript针对不确定函数的执行方法
Dec 16 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
详解vue-cli官方脚手架配置
Jul 20 Javascript
Vue中强制组件重新渲染的正确方法
Jan 03 Vue.js
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
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
php构造函数与析构函数
2016/04/23 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
PHP实现的日历功能示例
2018/09/01 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
Python常用列表数据结构小结
2014/08/06 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
网络维护管理员的自我评价分享
2013/11/11 职场文书
自主招生教师推荐信
2014/05/10 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书