写在后面,这里不对koa2做介绍,次要介绍一下koa2实现session性能。

入口文件app.js

const Koa = require('koa')  // v2.7.0const app = new Koa()const json = require('koa-json')const bodyparser = require('koa-bodyparser')const session = require('koa-generic-session') // v2.1.1const redisStore = require('koa-redis')  // v4.0.1// routerconst user = require('./routes/user')app.use(user.routes(), user.allowedMethods())// 解析request bodyapp.use(bodyparser({  enableTypes:['json', 'form', 'text']}))app.use(json())//session 配置  次要看这里!!!app.keys = ['abc123']    // 加密cookie用,能够随便写一个stringapp.use(session({  cookie: {    path: '/',           // 我的项目根门路,示意cookie用于整个我的项目    httpOnly: true,      // 禁止客户端通过js脚本批改cookie    maxAge: 24 * 60 * 60 * 1000  // cookie过期工夫 这里设置1天  },  // 配置redis  store: redisStore({    all: '127.0.0.1:6379'  // 这里用本地redis服务,默认端口6379  })}))module.exports = app

这样就配置好了,接下来咱们写一个路由进行测试,在routers/user.js中写入以下代码:

const router = require('koa-router')()router.prefix('/api/user')// 测试sessionrouter.get('/session-test', async function (ctx, next) {    if (ctx.session.viewCount == null) {        ctx.session.viewCount = 0    }        ctx.session.viewCount ++    ctx.body = {        errno: 0,        viewCount: ctx.session.viewCount    }}) module.expor![image.png](/img/bVcRyle)

而后,咱们运行我的项目,关上地址 http://localhost:8000/api/use...


而后,刷新页面,会看到viewCount的值始终在减少:


这时候去redis客户端看一下是否曾经存入:

而后,看一下浏览器的cookie:


redis数据库和cookie都曾经存入,此时最初再验证多个用户的话,是否互不影响,这时候再关上一个浏览器,同样输出http://localhost:8000/api/use...

能够发现,新关上的浏览器中,viewCount字段的值是1,而之前关上的浏览器viewCount的值还是5,而且刷新以后浏览器,viewCount自增,且不影响之前关上的浏览器中viewCount的值

![上传中...]()

到这里,session性能已根本实现。