漸進式Express原始碼學習1 萬物歸宗

2021-09-11 10:13:10 字數 1427 閱讀 7153

這是漸進式express原始碼學習 | 小白也能懂原始碼系列文章的第一篇。

請結合該節**閱讀lesson1-萬物歸宗

這篇文章我們實現乙個最最基礎的web框架,功能包括

具體的用法如下(我們用my-express表示這個框架)

const express = require('../index.js')

複製**

首先在node中,和網路請求相關的模組是http,我們可以用http搭建乙個簡單的web伺服器,如下**

複製**上面的**中,我們呼叫http模組的createserver函式,傳入乙個相應請求的函式。這個就是乙個簡單的web服務,非常好理解。node文件裡對createserver函式有說明。

基於上面的**,我們稍微做下調整,就是我們第乙個express的原始碼,如下

複製****開頭,我們引入http模組和merge-descriptors模組。http模組是node原生模組不多說,merge-descriptors是第三方模組,主要是通過descrptors合併物件,他的用法是

var thing = 

}var animal =

merge(animal, thing)

animal.name === 'jon'

複製**

更多關於merge-descriptors的實現可以看

目前我們整個專案的檔案結構是

我們首先通過命令node example/index.js執行樣例 然後我們通過下面命令來測試我們的程式是否正常工作

複製**結果如圖

所以我們的程式是正常工作了,我們第乙個版本的express也實現好了。現實的express還有很多其他功能,我們一步一步新增。

本文實現了乙個最基礎的express,他能預設響應客戶端的請求。本質上他是從http模組衍生來的,同樣的,express也是從http衍生過來的。

漸進式Express原始碼學習2 道士下山

這是漸進式express原始碼學習 小白也能懂原始碼系列文章的第二篇。請結合該節 閱讀lesson2 道士下山 這篇文章我們在第一篇文章的基礎上,實現乙個稍微加強版的express,功能包括 具體的用法如下 我們用my express表示這個框架 const express require inde...

漸進式Express原始碼學習3 初露鋒芒

這是漸進式express原始碼學習 小白也能懂原始碼系列文章的第三篇。請結合該節 閱讀lesson3 初露鋒芒 這篇文章我們在第二篇文章的基礎上,實現乙個稍微加強版的express,功能包括 具體的用法如下 先展示下目前的專案結構 和上篇文章不同的是,我們引入了route.js。目前原始檔總共有三個...

漸進式Express原始碼學習5 全副武裝

這是漸進式express原始碼學習 小白也能懂原始碼系列文章的第五篇。請結合該節 閱讀lesson5 全副武裝 這篇文章我們在第四篇文章的基礎上,實現乙個稍微加強版的express,功能包括 這篇文章要實現的express的期望用法如下 const express require index.js ...