文章目录
node.js的模块
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。那么,模块是什么呢?简单来说,一个模块就是一个Node.js文件,这个文件可以是Js代码、JSON或者编译过的C/C++扩展。
模块的引入
其实我们之前就接触过了,只需要使用require()把他导进来即可,比如:
const model = require(’./dog’);
dog.say()
这就相当于你要引入当前目录下一个叫dog.js的模块(Node.js默认后缀位 .js)
举个例子吧:
首先创建一个叫dog.js的文件,内容如下:
exports.say = function(){
console.log('one one one');
};
然后我们再创建一个调用的js文件,这里我直接叫01.js,内容如下:
const dog = require('./dog');
dog.say();
以上代码中,dog.js通过exports把say作为模块的访问接口,在01.js中通过require(’./dog’)加载dog模块后,就可以直接访问exports对象的成员函数了。
如果我们想要在Node.js中封装对象,那么代码如下:
Cat.js文件:
function Cat() {
let name;
this.setName = function (catName) {
name = catName;
};
this.say = function () {
console.log('我叫'+name+'喵');
};
}
//把“对象(猫)”作为访问接口发布出去
module.exports = Cat;
02.js文件:
//调用接口
const Cat = require('./Cat');
//创建“对象”
cat = new Cat();
//调用“对象函数”
cat.setName('旺财');
cat.say();
有一点面向对象的赶脚了有没有,还挺好玩的。
这里,模块接口的唯一变化是使用 module.exports = Cat 代替了exports.say = function(){}。 在外部引用该模块时,其接口对象就是要输出的 Cat 对象本身,而不是原先的 exports。