nodejs里require的调试截屏

例子:我执行到了下图第二行:

const TCPClient = require(’…/modules/tcpClient/index’)

那么我们就进入require的内部进行调试: 进入第11行:return mod.require(path);

path的值就是require传入的参数:

而mode的值:就是当前发起require请求的module对象:

转交给Module._load:

先从Module._cache里检查之前是否已经加载过这个模块了,如果缓存里有,直接从第479行返回了。

三大步骤:

  1. 新建一个Module对象
  2. 将新建的Module对象加入module缓存池里
  3. 执行tryModuleLoad加载module

nodejs框架试图从下列7个路径去加载module。

这个path和Java的classpath原理一样:

把该module的内容从文件系统读取出来,存储成字符串,然后compile:

require的返回结果,就是我们module实现文件里的exports输入,require结束。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券