Node初学(一)require方法

在node中模块中,上下文提供require()方法来引入外部模块:

var test=require('./index.js');

在require中传入模块标识,其实就是参数,可以 . 、 .. 开头的相对路径,或者绝对路径,也可以是文件夹。

在node中,模块分为两类:一类是node提供的模块,为核心模块,另一类是用户编写的模块,为文件模块。

在node中引入模块,需要经历三个过程:

1.路径分析

2.文件定位

3.编译执行

核心模块加载只需要经历路径分析,因为在node进程启动的时候,部分核心模块已经加载进内存中。


node中也有缓存加载,node对引用过的模块都会进行缓存,浏览器缓存的是文件,node缓存的是编译和执行后的对象;

在缓存加载机制中,核心模块缓存最先加载,文件模块缓存低于核心模块加载。


文件定位

require在分析标识符中,会出现不包含文件扩展名的情况,这种情况node会按js、json、node的次序补充扩展名,依次尝试。如果尝试没有获取到相对应的文件,却得到一个目录,node也会把这个目录当成一个包来处理。

看下图:require加载文件模块zhang,但是没有指明是zhang文件模块下那个模块。默认是index.js、index.json、index.node


node在目录分析中没有定义成功任何文件,则会进入下一个模块路径进行查找,全部查找完毕木有,则会抛出错误


缓存加载<--核心模块缓存<--文件模块缓存<--核心模块加载<--文件模块加载<--详细路径<--简单目录



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值