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 拾色器插件发布-jquery.icolor.js
Oct 20 Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
JavaScript中定义对象原型的两种使用方法
Dec 15 Javascript
js实现延迟加载的几种方法
Apr 24 Javascript
xmlplus组件设计系列之列表(4)
Apr 26 Javascript
VUE中的无限循环代码解析
Sep 22 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
Nov 22 Javascript
详解Angular操作cookies方法
Jun 01 Javascript
vue动画打包后失效问题的解决方法
Sep 18 Javascript
JS实现获取数组中最大值或最小值功能示例
Mar 02 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
May 13 Javascript
vue项目查看vue版本及cli版本的实现方式
Oct 24 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
详解JS面向对象编程
2016/01/24 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
使用tensorflow实现线性回归
2018/09/08 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
解决Python3下map函数的显示问题
2019/12/04 Python
餐饮收银员岗位职责
2014/02/07 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
关爱残疾人标语
2014/06/25 职场文书
浅谈Python 中的复数问题
2021/05/19 Python
微信小程序基础教程之echart的使用
2021/06/01 Javascript
讲解Python实例练习逆序输出字符串
2022/05/06 Python