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 相关文章推荐
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
Jan 29 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
jQuery中ready事件用法实例
Jan 19 Javascript
js焦点文字滚动效果代码分享
Aug 25 Javascript
js实现的星星评分功能函数
Dec 09 Javascript
D3.js实现简洁实用的动态仪表盘的示例
Apr 04 Javascript
利用vue.js把静态json绑定bootstrap的table方法
Aug 28 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
Aug 06 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 Javascript
js实现图片粘贴到网页
Dec 06 Javascript
JS性能优化实现方法及优点进行
Aug 30 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
Nov 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
mysql5详细安装教程
2007/01/15 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
JScript中的undefined和"undefined"的区别
2007/03/08 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
django框架如何集成celery进行开发
2017/05/24 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
一道python走迷宫算法题
2018/01/22 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
聘任书的写作格式及范文
2014/03/29 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
新员工入职感言范文!
2019/07/04 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
JavaScript实现简单拖拽效果
2021/09/15 Javascript