Express Session 的基本使用

一、 Session 简单介绍

session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上。
Cookie 数据存放在客户的浏览器上,Session 数据放在服务器上。Session 相比 Cookie 要 更安全一些。由于Session 保存到服务器上,所以当访问量增多的时候,会比较占用服务器 的性能。单个 cookie 保存的数据大小不能超过4K,很多浏览器都限制一个站点最多保存 20 个 cookie。Session 没有这方面的限制。Session 是基于 Cookie进行工作的。

二、 Session 的工作流程

当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生成一 个类似于 key,value 的键值对, 然后将key(cookie)返回到浏览器(客户)端,浏览器下次 再访问时,携带 key(cookie),找到对应的 session(value)。

三、 express-session 的使用
https://www.npmjs.com/package/express-session
1、安装

 express-session cnpm install express-session --save 

2、引入

express-session var session = require("express-session"); 
  1. 设置官方文档提供的中间件
app.use(session({ 
	secret: 'keyboard cat', 
	resave: true, 
	saveUninitialized: true 
}))
  1. 使用
 // 设置值 
 req.session.username = "张三"; 
 // 获取值 
 req.session.username

四、 express-session 的常用参数

app.use(session({ 
	secret: '12345', 
	name: 'name', 
	cookie: {maxAge: 60000}, 
	resave: false, 
	saveUninitialized: true 
}));

在这里插入图片描述
在这里插入图片描述
五、 express-session 的常用方法

req.session.destroy(function(err) { /*销毁 session*/ })
req.session.username='张三'; //设置 session 
req.session.username //获取 session 
req.session.cookie.maxAge=0; //设置 session 的过期时间 (它会把所有的session都销毁)
req.session.username=''; //销毁指定session 

六、 负载均衡配置 Session,把 Session 保存到数据库里面

1.需要安装 express-session 和 connect-mongo 模块 
2.引入模块 
var session = require("express-session"); 
const MongoStore = require('connect-mongo')(session); 
3.配置中间件 
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 
		}) 
}))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值