模块化
介绍
模块化指的就是将一个大的功能拆分为一个一个小的模块,通过不同的模块的组合来实现一个大功能。
- 在node中一个 js 文件就是一个模块
- 模块内部代码对于外部来说都是不可见的,可以通过两种方式向外部暴露
模块创建
一、创建 JS 文件,编写代码(假设当前文件名为 test.js)
function test(){
console.log('test');
}
二、在文件中对外暴露
module.exports = test;
这里有几点注意:
- module.exports 可以暴露任意数据
- 可以使用 module.exports 暴露多个数据
- exports 也可以暴露数据,不过不能使用
exports = xxx
的形式
exports = module.exports = {},相当于exports持有module.expors的引用,
如果使用exports = xxx这种方式进行导出,则exports不再指向module.exports,而module.exports的默认值为{},导出的仍为module.exports,所有exports = xxx这种导出方式不会生效!
模块引入
使用 require 引入文件即可
var test = require('./test.js');
这里有几点注意:
- 如果没有加文件后缀,会按照以下后缀加载文件
- .js fs模块同步读取文件编译执行
- .json fs模块同步读取文件,用JSON.parse()解析返回结果
- .node 这是c/c++编写的扩展文件,通过dlopen()方法编译
- 其他扩展名 会以.js文件载入
- 如果是文件夹则会默认加载该文件夹下 package.json 文件中 main 属性对应的文件
- 如果 main 属性对应的文件不存在,则自动找 index.js index.json
- 如果是内置模块或者是 npm 安装的模块,直接使用包名字即可
- npm 引入包时,如果当前文件夹下的 node_modules 没有,则会自动向上查找
简化
导出
module.exports
导入
var res = require('./module.js');
网友评论