nodejs

nodejs中的异步Io操作

nodejs中事件循环的队列

 

 

nodejs中的模块化:

node 模块引入与加载机制_我的博客-优快云博客_node模块加载机制

1. 模块有路径但没有扩展名:
按照其path先定位到对应的路径下,根据.js、.json、.node的顺序为path中的文件名加上后缀进行文件查找,如果找到则返回,如果未找到,则会将path中的文件名视为目录名进行查找,如果找到同名目录,则定位到该目录下,先去查找该目录下的package.json文件,通过JSON.parse()解析出包描述对象,再取出main属性指定的文件名进行定位。如果文件缺少扩展名,将会进入扩展名分析的步骤。如果该目录下没有package.json或者main属性指定的文件名错误,则会将index当做默认的文件名,然后依次查找index.js、index.json、index.node,如果找到则返回,如果未找到则require方法会抛出异常。

2. 模块有路径且有扩展名
按照其path定位到对应的路径下,根据文件名查找对应的文件,如果找到则返回,如果未找到,require方法会抛出异常。

3. 模块没有路径且没有扩展名
① 先去查找核心模块,如果不是核心模块则转到步骤②,否则返回核心模块。
② 去当前目录下的node_modules按照.js、.json、.node的顺序为模块名称加上扩展名然后去查找,如果找到则返回文件,否则将模块名称视为目录名称,在node_modules/目录名下查找package.json文件,通过JSON.parse()解析出包描述对象,再取出main属性指定的文件名进行定位。如果文件缺少扩展名,将会进入扩展名分析的步骤。如果该目录下没有package.json或者main属性指定的文件名错误,则会将index当做默认的文件名,然后依次查找index.js、index.json、index.node,如果找到则返回,如果未找到则执行步骤③
③ 去父目录中的node_modules中继续按照步骤②查找,直到根目录。如果到根目录还未找到文件,则执行步骤④。
④在全局目录查找:如果在操作系统的环境变量中设置NODE_PATH变量,并且已经将变量值设置为一个有效的磁盘目录,在使用require()方法加载模块时只指定了模块的名称而没有指定模块的路径,而且Node.js从其他路径中找不到需要被加载的模块文件时,Node.js将会从NODE_PATH变量值所指向的磁盘目录中寻找并加载模块文件。如果最终都没有找到,require()方法就会抛出异常。

4. 模块没有路径且有扩展名
① 去当前目录的node_modules下查找该文件名,如果有则返回,如果没有则去父目录中的node_modules下查找,直至到根目录,如果仍旧未找到,则会去全局目录下查找,依旧未找到则require方法会抛出异常。
————————————————
版权声明:本文为优快云博主「Lemon」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/weixin_43314846/article/details/104379468

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值