模块和包可以说是NodeJs的重要支柱,模块化可以把一个复杂的工程项目简单化。模块和包没有本质的区别,包是实现某一个功能模块的集合,通常用于发布和维护。但是对于开发者来说,模块和包是透明的。
1、模块:就是一个NodeJs文件(可以是js,JSON或者编译过的C/C++代码)。
两个重要操作export和require,前者提供模块的公开接口,后者用于从外部获取一个模块的接口。
2、创建模块并加载模块
首先创建就是一个module.js的js文件表示一个模块。
export.funName=function([参数]){
// 内容
}
然后在loadModule.js文件中加载模块。
var myModule = require('./module'); //加载模块
myModule.funName([参数]); // 利用模块
3、把对象封装到模块中
首先创建object.js做为封装对象的模块
function Foo() {
var innerVar = 'hello';
this.prop1 = 'Guest';
}
Foo.prototype.func = function() {
console.log(this.prop1);
}
module.exports=Foo; //模块导出
然后在loadObject.js文件中加载模块
var Object=require('./object.js'); //加载模块
var myObject=new Object();
myObject.func();
NodeJs的路径
require函数支持斜杠(/
)或盘符(C:
)开头的绝对路径,也支持./
开头的相对路径。但这两种路径在模块之间建立了强耦合关系,一旦某个模块文件的存放位置需要变更,使用该模块的其它模块的代码也需要跟着调整,变得牵一发动全身。因此,require
函数支持第三种形式的路径,NodeJS定义了一个特殊的node_modules
目录用于存放模块,直接require('filename')。