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 Html结构转字符串形式显示代码
Nov 15 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
Feb 05 Javascript
jsp+javascript打造级连菜单的实例代码
Jun 14 Javascript
javascript模拟命名空间
Apr 17 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
JS forEach跳出循环2种实现方法
Jun 24 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
Vue接口封装的完整步骤记录
May 14 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
十天学会php之第二天
2006/10/09 PHP
一些使用频率比较高的php函数
2008/10/03 PHP
PHP array_push 数组函数
2009/12/26 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
浅析JavaScript动画
2015/06/10 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
Python深入06——python的内存管理详解
2016/12/07 Python
python正则实现提取电话功能
2018/02/24 Python
opencv python 基于KNN的手写体识别的实例
2018/08/03 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python如何爬取动态网站
2020/09/09 Python
python绘图模块之利用turtle画图
2021/02/12 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
大学团支书的自我评价分享
2013/12/14 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
公司中秋节活动方案
2014/02/12 职场文书
学生保证书范文
2014/04/28 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
争先创优心得体会
2014/09/12 职场文书
教师个人自我评价
2015/03/04 职场文书