尽管有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