导语: 为了避免node后台太多的session,导致内存溢出还有各个后台进程之间不能通讯的问题,我们就要用到redis来存储session,来解决这一系列问题。
先安装两个依赖
npm i koa-generic-session npm i koa-redis接着修改app.js
const session = require('koa-generic-session') const redisStore = require('koa-redis') app.keys = ['xiaomizhou#13800_'] app.use(session({ // 配置 cookie cookie: { path: '/', httpOnly: true, maxAge: 24 * 60 * 60 * 1000 }, // 配置 redis store: redisStore({ // all: '127.0.0.1:6379' // 写死本地的 redis all: `${REDIS_CONF.host}:${REDIS_CONF.port}` }) }))搞定,接下来就可以用ctx.session来访问用户的session了。具体函数例子如下:
router.get('/list', async function (ctx, next) { const keyword = ctx.query.keyword || '' if (ctx.query.isadmin) { //在session中获取用户的账号信息 if (ctx.session.username == null) { console.error('is admin, but no login') // 返回未登录 ctx.body = new ErrorModel('未登录') return } // 获取自己的用户名 author = ctx.session.username } //数据库里面查找该作者,该关键词的信息,然后返回 const listData = await getList(author, keyword) ctx.body = new SuccessModel(listData) })补充: 微信搜索【web小馆】,回复全栈博客项目,即可获取项目源码和后续的实战文章教程。每天用最简单朴实的语言,潜移默化的提升你的计算机基础知识和前端技术。小米粥,一个专注的web全栈工程师,我们下期再见!