更新時間:2023-03-09 來源:黑馬程序員 瀏覽量:
KOA2基于 Node.js 平臺的Web服務器框架, 由 Express 原班人馬打造的一個后端服務器。 Express Koa , Koa2 都是 Web 服務器的框架,他們之間的差別和關系可以通過下面這個表格表示出。
KOA2環(huán)境依賴 Node v7.6.0 及以上由于 Koa2 它是支持 async 和 await ,所以它對 Node 的版本是有要求的,它要求 Node 的版本至少是在7.6級以上,因為語法糖 async和await 是在 Node7.6 版本之后出現(xiàn)才支持。
KOA2是洋蔥模型的中間件,如下圖所示, 對于服務器而言,它其實就是來處理一個又一個的請求, Web 服務器接收由瀏覽器發(fā)過來的一個又一個請求之后,它形成一個又一個的響應返回給瀏覽器. 而請求到達我們的服務器是需要經(jīng)過程序處理的,程序處理完之后才會形成響應,返回給瀏覽器,我們服務器處理請求的這一塊程序,在 Koa2 的世界當中就把它稱之為中間件。
這種中間件可能還不僅僅只有一個,可能會存在多個,比如上圖所示, 它就存在三層中間件,這三層中間件在處理請求的過程以及它調(diào)用的順序為:
當一個請求到達咱們的服務器,最先最先處理這個請求的是第一層中間件
第一層的中間件在處理這個請求之后,它會把這個請求給第二層的中間件
第二層的中間件在處理這個請求之后,它會把這個請求給第三層的中間件
第三層中間件內(nèi)部并沒有中間件了, 所以第三層中間件在處理完所有的代碼之后,這個請求又會到了第二層的中間件,所以第二層中間件對這個請求經(jīng)過了兩次的處處理第二層的中間件在處理完這個請求之后,又到了第一層的中間件, 所以第一層的中間件也對這個請求經(jīng)過了兩次的處理。
這個調(diào)用順序就是洋蔥模型, 中間件對請求的處理有一種先進后出的感覺,請求最先到達第一層中間件,而最后也是第一層中間件對請求再次處理了一下。