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中的对象和数组的应用技巧
Jan 07 Javascript
FLASH 广告之外的链接
Dec 16 Javascript
jQuery ui 1.7更新小结
Aug 15 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
Sep 28 Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
Oct 15 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
Jan 05 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
Jun 25 Javascript
Vue 解决多级动态面包屑导航的问题
Nov 04 Javascript
javascript canvas实现简易时钟例子
Sep 05 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
PHP中对数据库操作的封装
2006/10/09 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
javascript中clone对象详解
2014/12/03 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
vue如何截取字符串
2019/05/06 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
用Python生成器实现微线程编程的教程
2015/04/13 Python
python中list常用操作实例详解
2015/06/03 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
在python shell中运行python文件的实现
2019/12/21 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
文秘应聘自荐书范文
2014/02/18 职场文书
道路施工安全责任书
2014/07/24 职场文书
个人先进事迹总结
2015/02/26 职场文书
会计专业求职信范文
2015/03/19 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android