1.模块的创建
Node.js提供了exports和require两个对象,其中exports是模块公开的接口,require是用于从外部获取一个模块的接口,即获取模块的exports对象。
创建一个ModuleTest.js文件:
var name;
exports.setname = function(thyName){
name = thyName;
}
exports.sayhello = function(){
console.log('Hello '+name);
}
同一目录下创建getModule.js文件:
var myModule = require('./ModuleTest');
myModule.setname("LiMing");
myModule.sayhello();
运行结果是:Hello LIMIng
在require命令中,如果文件路径前面没有写“./”,那么Node.s将该文件视为node_modules目录下的一个文件。
node_modules文件夹并不一定在同一级目录里面,在任何直接祖先级目录中都可以,也可以放到NODE_PATH环境变量中的文件夹。
可以使用文件夹管理模块,及不写文件的后缀,那么Node.js将会去寻找node_modules目录下的文件夹中index.js去执行。
2.模块的单次加载
3.覆盖exports
把类封装到模块中
//hello.js
function Hello(){
var name;
this.setname = function(thyName){
name = thyName;
};
this.sayhello = function(){
console.log('Hello ' + name);
};
};
module.exports = Hello;
//gethello.js
var Hello = require('./hello');
hello = new Hello();
hello.setname('BYVoid');
hello.sayhello();
使用module.exports = Hello;代替了exports.Hello = Hello;。在外部引用模块时,接口对象就是Hello本身,二不是原先的exports。