KOA 與 CO 實現(xiàn)淺析

KOA 與 CO 的實現(xiàn)都非常的短小精悍,只需要花費很短的時間就可以將源代碼通讀一遍。以下是一些淺要的分析。

如何用 node 實現(xiàn)一個 web 服務(wù)器

既然 KOA 實現(xiàn)了 web 服務(wù)器,那我們就先從最原始的 web 服務(wù)器的實現(xiàn)方式著手。
下面的代碼中我們創(chuàng)建了一個始終返回請求路徑的 web 服務(wù)器。

const http = require('http');
const server = http.createServer((req, res) => {
  res.end(req.url);
});
server.listen(8001);

當(dāng)你請求 http://localhost:8001/some/url 的時候,得到的響應(yīng)就是 /some/url。

KOA 的實現(xiàn)

簡單的說,KOA 就是對上面這段代碼的封裝。

首先看下 KOA 的大概目錄結(jié)構(gòu):

lib 目錄下只有四個文件,其中 request.js 和 response.js 是對 node 原生的 request(req) 和 response(res) 的增強,提供了很多便利的方法,context.js 就是著名的上下文。我們暫時拋開這三個文件的細節(jié),先看下主文件 application.js 的實現(xiàn)。

先關(guān)注兩個函數(shù):

// 構(gòu)造函數(shù)  function Application() { if (!(this instanceof Application)) 
        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式