在编写稍微大一点的程序的时候,需要把代码进行模块化。在NodeJS当中,需要把不同的JS拆分成一个个的JS文件,这样的JS文件就是一个个的模块。
模块化的概念和意义
- 为了让Node的文件可以相互调用,Node提供了一个简单的模块系统
- 模块是Node应用程序的基本组成部分
- 文件和模块是一 一对应的。一个JS文件就是一个模块。
- 这个模块可能是纯粹的JS代码,也有可能是JSON或者编译过的C/C++扩展
- NodeJS中分为4大类模块 (原生模块和3种文件模块)
NodeJS的模块加载流程
划重点:模块分两个区,一个是文件模块缓存区,一个是原生模块缓存区。一个是原生的,一个是第三方的。缓存区的意义是防止模块反复的被加载到内存当中,加快了模块的加载速度。
**node的模块加载方式
- 从文件模块缓存中加载
- 从原生模块加载
- 从文件加载
require方法加载模块
reqiure方法接受一下集中参数的传递
- http、fs、path等,原生模块。
- ./mod或../mod 相对路径的自己写的模块或者第三方模块
- /path/mod 绝对路径自己写的模块或者第三方模块的文件模块
- mod, 非原生模块的文件模块。
模块化代码实例
自己封装的模块 hello.js
function Hello() {
var name;
this.setName = function (argname) {
name = argname;
}
this.sayHello = function () {
console.log('hello' + name);
}
}
// 对模块导出
module.exports = Hello;
node执行 main.js
// 调用hello模块
const Hello = require('./hello');
hello = new Hello();
hello.setName('yideng');
hello.sayHello();
//输出 helloyideng