- 一、NodeJS 介绍
- 二、HTTP 模块、URL 模块 supervisor 工具
- 三、CommonJs 和 Nodejs 模块
- 四、NPM 第三方模块和 package
- 五、fs 模块
- 六、创建一个 WEB 服务器
- 七、Nodejs 的非阻塞 I/O、异步、事件驱动
- 八、静态文件托管 GET POST 路由 EJS 模板引擎
- 九、MongoDb 数据库介绍、安装、使用
- 十、MongoDB 数据库创建删除、表(集合)创建删除、数据增删改查
- 十一、MongoDB 索引 explain 分析查询速度
- 十二、nodejs 操作 mongodb3.x 数据库的方法
- 十三、NodeJs 操作 MongoDb 数据库 数据的增加 修改 删除
- 十四、Express 安装和使用
- 十五、express 中间件 cookie 的基本使用
- 十六、express 中间件 express-session 常见参数配置使用
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
十六、express 中间件 express-session 常见参数配置使用
16.1 Session 简单介绍
session
是另一种记录客户状态的机制,不同的是Cookie
保存在客户端浏览器中,而session
保存在服 务器上
Session 的用途
session
运行在服务器端,当客户端第一次访问服务器时,可以将客户的登录信息保存- 当客户访问其他页面时,可以判断客户的登录状态,做出提示,相当于登录拦截
session
可以和Redis
或者数据库等结合做持久化操作,当服务器挂掉时也不会导致某些客户信息(购物车) 丢失。
16.2 Session 的工作流程
当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生成一个类似于 key,value 的键值对,然后将 key(cookie) 返回到浏览器(客户) 端,浏览器下次再访问时,携带 key(cookie), 找到对应的 session(value)。 客户的信息都保存在 session 中
16.3 express-session 的使用
1. 安装 express-session
cnpm install express-session --save
2. 引入 express-session
var session = require("express-session");
3. 设置官方文档提供的中间件
app.use(session({ secret: 'keyboard cat', resave: true, saveUninitialized: true }))
4. 使用
- 设置值
req.session.username = "张三";
- 获取值
req.session.username
16.4 express-session 的常用参数
app.use(session({ secret: '12345', name: 'name', cookie: { maxAge: 60000 }, resave: false, saveUninitialized: true }));
行加密的字符串.这个
16.5 express-session 的常用方法
req.session.destroy(function(err) { /*销毁 session*/ }) req.session.username = '张三'; //设置 session req.session.username //获取 session req.session.cookie.maxAge=0; //重新设置 cookie 的过期时间
16.6 负载均衡配置 Session,把 Session 保存到数据库 里面
- 需要安装
express-session
和connect-mongo
模块 - 引入模块
var session = require("express-session"); const MongoStore = require('connect-mongo')(session);
- 配置中间件
app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: true, rolling:true, cookie:{ maxAge:100000 }, store: new MongoStore({ url: 'mongodb://127.0.0.1:27017/student', touchAfter: 24 * 3600 // time period in seconds }) }))
16.7 Cookie 和 Session 区别
cookie
数据存放在客户的浏览器上,session
数据放在服务器上cookie
不是很安全,别人可以分析存放在本地的COOKIE
并进行COOKIE
欺骗 考虑到安全应当使用session
session
会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE
- 单个
cookie
保存的数据不能超过4K
,很多浏览器都限制一个站点最多保存20
个cookie
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论