博客 / 詳情

返回

koa原理詳解

文章不易,請關注公眾號 毛毛蟲的小小蠟筆,多多支持,謝謝

先看個Demo

app.use(async (ctx, next) => {
  console.log(1)
  await next()
  console.log(2)
  ctx.body = 'Hello Koa';
});
app.use(async (ctx, next) => {
  console.log(3)
  await next()
  console.log(4)
});
app.use(async (ctx, next) => {
  console.log(5)
});

輸出結果是:
1
3
5
4
2

這就是所謂的洋葱模型。
第一個中間件在最外層,然後第二個在第二層,第三個則是最裏面一層。
所以先執行1,然後到第二層的3,再到最裏面的5,執行完後再到第二層的4,最後返回到第一層的2。

看源碼

app.use最主要的是把中間件存起來:this.middleware.push(fn)。

詳情 請查看:毛毛蟲的小小蠟筆

user avatar jidongdehai_co4lxh 頭像 lihaixing 頭像 shangxindi 頭像 yumiko_5c088de8aa1fe 頭像 aixiaodeludan_bqazwx 頭像 minnanitkong 頭像 yourena_c 頭像 jinl9s27 頭像
8 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.