06-其他常用中间件

nobility 发布于 2025-10-01 02-Koa2 2917 次阅读


其他常用中间件

session

在请求对象中添加的session信息(ctx.session),需要先使用npm install koa-generic-session 安装koa-generic-session包,再请求之前添加该中间件即可,具体参考下面代码

/***********解析 ctx.session 模块************/
const session = require("koa-generic-session");
app.keys = ["pwd"];	//设置加密密钥
app.use(session({
  key: 'session',	//cokkie中存储的sessionId前缀,会有两个键值,默认是koa,分别是koa.sid和koa.sid.sig
  cookie: {
    // path: '/',	//session作用范围,默认就是 /
    // httpOnly: true,	//只允许服务端修改,默认就是true
    maxAge: 30 * 1000	//session失效时间,单位毫秒
  }
}))

/***********解析 ctx.session 模块存入redis中的配置,需要在安装koa-redis包************/
const session = require("koa-generic-session");
const redisStore = require("koa-redis");
app.keys = ["pwd"];	//设置加密密钥
app.use(session({
    key: 'session',	//cokkie中存储的sessionId名
    cookie: {
        maxAge: 30 * 1000	//session失效时间,单位毫秒
    },
    store: redisStore({
        all: "127.0.0.1:6379"   //redis地址
    })
}));

日志记录

使用npm install koa-morgan安装该中间件,再请求之前添加该中间件即可,使用方式与express一致,具体参考express中的日志记录即可

文件上传

使用npm install koa-multer安装该中间件,再请求之前添加该中间件即可,使用方式与express一致,具体参考express中的文件上传即可,要注意的是需要使用async函数,对于请求和响应对象使用ctx.reqctx.res即可

jsonp

使用npm install koa-jsonp安装jsonp中间件,再请求之前添加该中间件即可,对于jsonp的请求会自动按照jsonp格式返回,具体可参照下面代码

const json = require("koa-json");
app.use(json());
app.use( async ( ctx ) => {
  ctx.body = {}  //对于jsonp的请求会直接返回jsonp格式JavaScript代码
})
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2025-10-01