1.seesion是什么
session 对应 cookie也是一种记录客户状态的机制,不同的是 cookie保存
客户端浏览器中,而session保存在服务器上
2.session的工作流程
当浏览器访问服务器 服务器在session中创建键值对 返回键给web
web得到键,保存在cookie中,下次访问可以直接通过键去得到服务器中对应的值
3.koa中seesion的使用
3.1 安装koa-session
npm i koa-session --save
3.2 引入
3.3 配置中间件
4.sesstion的意义与实例
我觉得最大的意义就在于,各个路由之间数据的传递(基于cookie)
实现多个页面的数据共享*/
const Koa = require('koa');
const Router = require('koa-router');
const koa = new Koa();
const router = new Router();
const sesstion = require('koa-session')//引入
//配置中间件
koa.keys = ['some secret hurr']/*cookie的签名 */
const sessionConfig = {
key:'koa:sess',//cookie的key 默认是 koa:sess
maxAge: 86400000,//cookie的过期时间 need
overwrite:true,
httpOnly:true,
signed:true,
rolling:false,//在每次请求时强行设置cookie,这将重置cookie过期时间
renew:true//在seesion快过期的时候重新设置session need
}
koa.use(sesstion(sessionConfig,koa))
router
.get('/', async(ctx) => {
ctx.session.name = "DIO";
ctx.body = 'JOJO';
})
.get('/new',async (ctx) =>{
ctx.body = ctx.session.name;
})
koa
.use(router.routes())
.use(router.allowedMethods())
.listen(3000);
console.log('127.0.0.1:3000');