js如何执行完上一步才到下一步_前端如何看框架源码-egg.js源码探索日志1

615b6fdfe82b0e04d8521399c07e33c6.png

最近迫于压力,开始了对BFF层的研究,也就是nodejs做前后端中间层,可惜资料真的是非常的少,没有具体的资料,于是乎萌生了找个框架看一看的想法,个人感觉啊 目前国内比较不错的框架就是egg.js,所以就先从这个看起

写这篇连载文章,主要也是为了督促我能更好的看下去,如果哪些地方有说的不太对的地方希望大神给予指出,不吝赐教

一、入口寻找

首先呢先根据官方文档创建个项目,就不说了文档很好很强大

快速入门 - 为企业级框架和应用而生​eggjs.org
0ffee496497341c45c209159a1965bfd.png

看一个JS 项目我门应该从他得packjson开始看

44f25f9bd9845d9683706a485a0ef7b5.png

在scripts中找到一个常用的 script,以dev这个脚本为入口来一步一步深入源码,

scripts脚本是如何运行的呢,其实就是调用了当前项目中,

node_modules.bin 这个目录下面的脚本,我们找到对应脚本

b436eaea2740618bde4272d219ad261e.png

脚本找到了很简单,用node 执行 egg-bin.js,然后我们找到这个JS(怎么找?vscode的话ctrl+F)

f2714aefba1231ec62c5dd9889ecf9a2.png

这个JS也只是个启动文件,就两行代码

const Comand = requier('..') 等同于const Comand = requier('../index.js')

然后调用了start这个函数我们找到这个文件

d710fe9815f3504bc835331332483be7.png

这个就是入口文件啦,一切开始的地方

简单分析一下:

首先这个类 继承了Command,Command 又继承了BaseCommand,主要代码其实都在BaseCommand,之后会详细说。

看代码的执行顺序最后才会执行 this.load的方法,由于我提前看过代码,BaseCommand里有很多CO的自执行的generator函数,这个就相当于

cfd209341406195d6531be28874b4688.png

414d747115a123cbfe73c2aa1fb9cbe6.png

由于JS eventloop的机制,load这个函数不一定最后执行(不太清楚为什么要这么写,可能我还没看全不能体会代码的用意),所以呢 接下来先看 this.load这个函数做了什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值