首頁技術(shù)文章正文

什么是KOA2?KOA2簡介

更新時間:2023-03-09 來源:黑馬程序員 瀏覽量:

KOA2基于 Node.js 平臺的Web服務(wù)器框架, 由 Express 原班人馬打造的一個后端服務(wù)器。 Express Koa , Koa2 都是 Web 服務(wù)器的框架,他們之間的差別和關(guān)系可以通過下面這個表格表示出。

Koa和Koa2的差別

KOA2環(huán)境依賴 Node v7.6.0 及以上由于 Koa2 它是支持 async 和 await ,所以它對 Node 的版本是有要求的,它要求 Node 的版本至少是在7.6級以上,因為語法糖 async和await 是在 Node7.6 版本之后出現(xiàn)才支持。

KOA2是洋蔥模型的中間件,如下圖所示, 對于服務(wù)器而言,它其實就是來處理一個又一個的請求, Web 服務(wù)器接收由瀏覽器發(fā)過來的一個又一個請求之后,它形成一個又一個的響應(yīng)返回給瀏覽器. 而請求到達我們的服務(wù)器是需要經(jīng)過程序處理的,程序處理完之后才會形成響應(yīng),返回給瀏覽器,我們服務(wù)器處理請求的這一塊程序,在 Koa2 的世界當(dāng)中就把它稱之為中間件。

中間件

這種中間件可能還不僅僅只有一個,可能會存在多個,比如上圖所示, 它就存在三層中間件,這三層中間件在處理請求的過程以及它調(diào)用的順序為:

當(dāng)一個請求到達咱們的服務(wù)器,最先最先處理這個請求的是第一層中間件

第一層的中間件在處理這個請求之后,它會把這個請求給第二層的中間件

第二層的中間件在處理這個請求之后,它會把這個請求給第三層的中間件

第三層中間件內(nèi)部并沒有中間件了, 所以第三層中間件在處理完所有的代碼之后,這個請求又會到了第二層的中間件,所以第二層中間件對這個請求經(jīng)過了兩次的處處理第二層的中間件在處理完這個請求之后,又到了第一層的中間件, 所以第一層的中間件也對這個請求經(jīng)過了兩次的處理。

這個調(diào)用順序就是洋蔥模型, 中間件對請求的處理有一種先進后出的感覺,請求最先到達第一層中間件,而最后也是第一層中間件對請求再次處理了一下。

分享到:
在線咨詢 我要報名
和我們在線交談!