实践出真知之Koa洋葱模型
核心代码演示:
const Koa = require('koa')
const app = new Koa()
//middleware one
app.use(async(ctx,next) => {
console.log("中间件一开始");
await next() //调用下一个中间件
console.log("中间件一结束");
})
//middleware two
app.use(async (ctx,next) => {
const startTime = new Date().getTime();
console.log("中间件二开始");
await next(); //处理下一个中间件
console.log("中间件二结束");
const spendMs = new Date().getTime() - startTime
})
//middleware three
app.use(async (ctx,next) => {
console.log("++++");
await next()
ctx.response.type = "text/html"
ctx.response.body = "Koa洋葱模型"
console.log("----");
})
app.listen(3000);
执行结果:
从执行结果中可以看出,从第一个中间件开始,最后从第一个中间件结束,就像针穿过洋葱一样,从最外层进去,然后从最外层出来一样。