zhaobinglong / myBlog

https://zhaobinglong.github.io/myBlog/
MIT License
7 stars 0 forks source link

基于koa的项目设计 #107

Open zhaobinglong opened 3 years ago

zhaobinglong commented 3 years ago

koa框架组成

与express区别

启动应用

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
  ctx.body = 'Hello World';
});

app.listen(3000);
zhaobinglong commented 3 years ago

koa的中间件执行顺序

洋葱模型的顺序,类似于vue中嵌套组件的生命周期,从外到里,然后从里到外

const Koa = require('koa')
const app = new Koa()

const mid1 = async (ctx, next) => {
    ctx.body =  '前:' + '1\n'
    await next()
    ctx.body =   ctx.body + '后:' + '1\n'
}

const mid2 = async (ctx, next) => {
    ctx.body =    ctx.body + '前:'+ '2\n'
    await next()
    ctx.body =    ctx.body + '后:'+ '2\n'
}

const mid3 = async (ctx, next) => {
    ctx.body =  ctx.body + '前:'+  '3\n'
    await next()
    ctx.body =   ctx.body + '后:'+ '3\n'
}

app.use(mid1)
app.use(mid2)
app.use(mid3)

app.listen(3000)