express-session()
定义:
-
session()
是一个中间件函数。- 用于创建一个session对象
- session对象用于管理HTTP状态
注意session数据在cookie中只存储session ID。
session数据存储在服务器端。
cookie存储在浏览器端。
-
cookie什么时候存储在浏览器端?
- 用户第一次发起请求
- 当服务器区第一次做出响应的时候,服务器通过session在用户
- 用户以后的每次请求都会携带cookie
语法:
session({options})
session({选项对象})
session({
secret: 'string', //密要
cookie: { //安插用户浏览器中的后门(键值对)
path: '/',
httpOnly: true,
secure: false,
maxAge: null //使用毫秒数设置cookie的有效期 5分钟或者1分钟
},
resave:false,
saveUninitialized:true
})
示例:
npm install express-session
const session = require('express-session')
app.use()
session 读:赛神
1.什么是session
- session指HTTP客户端和服务端的会话。(浏览器 <==> 服务器)
2.Session的用途
- 1.HTTP是无状态的
- 2.Session用于处理HTTP通信的状态问题
3.Session和cookie的区别
- 1.session存储服务器的内存里。cookie存储在客户端的浏览器里
- 2.浏览器端的cookie是通过服务端session创建的
4.在服务端创建session的语法
app.use(session({
secret:'任意字符串', //secret:用于创建sessionID(密钥),sessionID存储在浏览器端的cookie里
cokkie:{
maxAge:毫秒数, //maxAge:决定了cookie的有效期
},
resave:布尔值, //当session发生变化时是否需要重新存储。建议false
saveUninitialized:布尔值 //如果为完成初始化是否创建session,建议true
}))
5.express-session模块如何创建cookie?
- app.use(session({})) 创建一个session对象,cookie是通过session对象创建的
6.记住一句话
- 1.在服务端创建一个session,就在浏览器端植入了一个cookie
- 2.浏览器端的cookie只存储sessionID,不存储任何其他数据
- 3.sessionID是通过
secret
属性生成一个加密的随机的唯一的ID - 4.只要cookie植入完成,浏览器端发起的任何请求都会自动携带sessionID
7.所有的中间件函数都必须要执行next()函数:跳转到下一个中间件函数
8.req.session的用途是什么?
- req.session用于向服务端的Session对象添加额外信息。