學習express.js原始碼的方法

1000copy發表於2018-05-08

儘管有Hapi,Koa等有力的競爭者,express.js依然是非常流行的nodejs web伺服器框架,畢竟它早於2007年就已經在開發了。

學習expressjs的原始碼的好處自然不少。

它可以幫你深刻理解HTTP協議,這個協議是做前端後端都必然需要學習的協議,是透徹理解現在很多程式碼的關鍵。如果你看過了HTTP類的書籍,比如《HTTP小書》,自然需要找一個像樣的程式碼一試身手,驗證自己的所學,那麼expressjs一定不會讓你失望。

如果你某天看了關於bind、apply等函式的使用方法,那麼在這裡你可以看到更多實際場景對函式的使用。

要是你基於expressjs做Web開發的話,那麼,作為一個開發者,多多少少是對expressjs的原理比較好奇的。閱讀expressjs原始碼可以幫你實現你的好奇心。

本文會推薦一些expressjs的原始碼分析文章,可以幫助更快的,更加全方位的理解研讀之。

  1. Express原始碼學習-路由篇 作者:等你下課。express.js的關鍵功能體現在路由的實現上,這一模組也是一個難點,本文專門針對路由實現做分析,其中的圖也很好的幫助開發者理解路由的內部資料結構,按圖索驥,更好的在原始碼中漫遊。https://juejin.im/post/5ab545a66fb9a028b92d15e7

  2. express原始碼分析之Router 作者 leijianning 這是在cnodejs網站上被設定精華的原始碼解析文章,儘管主要分析路由,但是它的App部分分析也不錯,文字簡練表達直接,是一片不可多得的好文章。其中動態建立get,post函式的程式碼解析很到位。https://cnodejs.org/topic/5746cdcf991011691ef17b88

  3. 對express中next函式的一些理解 作者 leijianning 來自同一作者的解析,依然是講解路由,但是專門講解next函式,內個我們在路由中有時候會呼叫到它,還會通過傳遞引數而跳過route,或者整個router的函式。這個函式使用了閉包,實現非常的有技巧,但是也因此令程式碼非常難以理解。

  4. express 原始碼閱讀 作者:w_z_c 。他是通過利用expressjs現在的實現手法,經過幾個迭代來完成對它的理解。這個思路非常贊。以下為作者原話。“網路上關於原始碼的分析已經數不勝數,這篇文章準備另闢蹊徑,仿製一個express的輪子,通過測試驅動的開發方式不斷迭代,正向理解express的程式碼”https://juejin.im/post/59c0ef425188257e934966ad

文章作者的github,大家不妨去star,以示支援。

  1. leijianning https://github.com/leijianning
  2. w_z_c https://github.com/WangZhechao

相關文章