module对象
每个.js自定义模块都有一个module对象,module对象存储了和当前模块有关的信息,打印如下:
module.exports对象
在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用
外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象
示例:
共享成员的注意点
使用require()方法导入模块时,导入的结果,永远以module.exports指向的对象为准
如果重新编写了module.exports指向的对象,则为最新编写的内容:
module.exports = {
nikename: 'zs',
age: 20,
sayHi() {
console.log('Hello');
}
}
exports对象
由于module.exports单词写起来比较复杂,为了简化向外共享成员的代码,Node提供了exports对象,默认情况下,exports和module.export指向同一个对象,最终共享结果,还是以module.exports指向的对象为准
exports 和 module.exports 的使用误区
时刻谨记,require()模块时,得到的永远是module.exports指向的对象
注意: 为了防止混乱,建议不在同一个模块中同时使用exports和module.exports