const koa = require('koa')
const app = new koa()
const mid1 = async (ctx,next)=>{
ctx.type = "text/html;"
await next()
ctx.body = ctx.body + " mid1"
}
const mid2 = async (ctx,next)=>{
ctx.body = 'hi'
await next()
ctx.body = ctx.body + " mid2"
}
const mid3 = async (ctx,next)=>{
// await mid1()
// await mid2()
ctx.body = ctx.body + "zhan"
await next()
ctx.body = ctx.body + " mid3"
}
app.use(mid1)
app.use(mid2)
app.use(mid3)
app.listen(2333)
中间件的传播如果没有await next(),那么中间件将无法传播.await next()之后这个中间件将入栈,执行完中间件的注册流程之后,中间件await next
()之后的代码将会继续执行
所以上面这段代码的执行结果是
hizhan mid3 mid2 mid1