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 相关文章推荐
JQuery 中几个类选择器的简单使用介绍
Mar 14 Javascript
javascript遍历控件实例详细解析
Jan 10 Javascript
jquery复选框多选赋值给文本框的方法
Jan 27 Javascript
JQuery中使文本框获得焦点的方法实例分析
Feb 28 Javascript
关于延迟加载JavaScript
May 05 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
Jun 06 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
小程序从手动埋点到自动埋点的实现方法
Jan 24 Javascript
JS实现随机抽选获奖者
Nov 07 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 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
解析thinkphp基本配置 convention.php
2013/06/18 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
用jquery来定位
2007/02/20 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
原生js实现购物车功能
2020/09/23 Javascript
python写入中英文字符串到文件的方法
2015/05/06 Python
Django model反向关联名称的方法
2018/12/15 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
Python with语句和过程抽取思想
2019/12/23 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
Python itertools.product方法代码实例
2020/03/27 Python
python中怎么表示空值
2020/06/19 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
2014年度党员自我评议
2014/09/13 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
2015中秋祝酒词
2015/08/12 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书