[nodejs]require机制和使用

本文详细解析了Node.js中模块的加载逻辑,包括模块与文件的一一对应关系,require()函数如何查找、加载模块,以及模块的使用方式,对比了传统模块加载与ES6模块的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nodejs中,模块和文件是一一对应的关系,一个文件就可以看作是一个模块。文件可以是js、json文件、css等。

require(X)的内部加载逻辑:

  1. 先检查缓存,如果缓存中有则直接返回加载,如果没有进行第2步
  2. 如果X是内置模块,直接返回模块,不继续执行
  3. 如果X带路径,包含./ ../等,则根据X所在的父模块确定X的绝对路径
    1. 当作文件查找X文件,只要有一个文件,就返回该文件,不再继续执行
    2. 当作目录查找目录,只要有一个符合,就返回该目录下的所有文件
  4. 如果不带路径,则按照父模块的路径查找可能安装的目录,在这些目录下搜索可能的X文件或者X目录,找到则返回该文件或者目录。
  5. 没有找到,返回not found

nodejs中模块的使用采用module.exports和require(属于运行时加载,可同步)一起使用,es6采用import和export一起使用,import属于编译时加载。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值