Node.js刷新session过期时间
2023-09-14 08:59:53 时间
在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 安装与环境变量配置
- 【说站】js中Array.from的用法
- JS动态设置对象的属性名
- 软件测试|selenium执行js脚本
- JS变量提升和预解析详解
- 快速在Linux平台上安装Node.js(node安装linux)
- 用SQL Server和JS实现数据库管理技术(sqlserver.js)
- 利用Node.js实现对MS SQL服务器的连接(node连MSsql)
- JS获取图片实际宽高及根据图片大小进行自适应
- 利用JS解决ie6不支持max-width,max-height问题的方法
- JS将所有对象s的属性复制给对象r(原生js+jquery)
- node.js中使用node-schedule实现定时任务实例
- node.js操作mongoDB数据库示例分享
- node.js中的fs.linkSync方法使用说明
- node.js中的fs.chown方法使用说明
- Node.js开发之访问Redis数据库教程
- JavaScript学习笔记之JS对象
- JS按回车键实现登录的方法
- 我用的一些Node.js开发工具、开发包、框架等总结