最近迫于压力,开始了对BFF层的研究,也就是nodejs做前后端中间层,可惜资料真的是非常的少,没有具体的资料,于是乎萌生了找个框架看一看的想法,个人感觉啊 目前国内比较不错的框架就是egg.js,所以就先从这个看起
写这篇连载文章,主要也是为了督促我能更好的看下去,如果哪些地方有说的不太对的地方希望大神给予指出,不吝赐教
一、入口寻找
首先呢先根据官方文档创建个项目,就不说了文档很好很强大
快速入门 - 为企业级框架和应用而生eggjs.org看一个JS 项目我门应该从他得packjson开始看
在scripts中找到一个常用的 script,以dev这个脚本为入口来一步一步深入源码,
scripts脚本是如何运行的呢,其实就是调用了当前项目中,
node_modules.bin 这个目录下面的脚本,我们找到对应脚本
脚本找到了很简单,用node 执行 egg-bin.js,然后我们找到这个JS(怎么找?vscode的话ctrl+F)
这个JS也只是个启动文件,就两行代码
const Comand = requier('..') 等同于const Comand = requier('../index.js')
然后调用了start这个函数我们找到这个文件
这个就是入口文件啦,一切开始的地方
简单分析一下:
首先这个类 继承了Command,Command 又继承了BaseCommand,主要代码其实都在BaseCommand,之后会详细说。
看代码的执行顺序最后才会执行 this.load的方法,由于我提前看过代码,BaseCommand里有很多CO的自执行的generator函数,这个就相当于
由于JS eventloop的机制,load这个函数不一定最后执行(不太清楚为什么要这么写,可能我还没看全不能体会代码的用意),所以呢 接下来先看 this.load这个函数做了什么。