其他常用中间件
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.req和ctx.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代码
})

Comments NOTHING