nodejs 模块加载机制
加载方法: require(‘文件路径/文件’);
路径
绝对路径 require(’/Users/wayne/study/秒味课堂学习记录/nodejs/1.js’);
相对路径 require(’./1.js’);
注意:require(‘1.js’) 这种不包含路径的写法,在nodejs中会直接加载node中的核心模块,或者是node_modules
文件查找机制
- 根据文件名称查找(不带后缀)
- 如果没有找到,则会在模块文件名称后加上 .js的后缀,进行查找
- 如果 .js 后缀文件没有找到,则在模块文件名称后面加上 .json后缀,进行查找
- 如果 .json 后缀文件没有找到,则在模块文件名称后面加上 .node后缀,进行查找
文件名称 -> .js -> .json -> .node
require('./1');
模块访问
在一个模块中通过var声明的变量,其作用域范围是当前模块的,外部不能够直接访问,如果想一个模块能够访问另外一个模块中定义的变量,可以:
- 把变量作为global对象的一个属性,但是这样的方法不推荐使用(尽量减少全局变量的定义)
- 使用模块对象 module
module : 保存提供和当前模块有关的一些信息
在这个module对象,有一个子对象: exports 对象
我们可以通过这个对象把一个模块中的局部变量对象进行提供访问
在模块作用域,还有一个内置的模块对象,exports, 他其实就是modules.exports