module.exports和exports的区别
在学习Node.js时,经常能看到两种导出模块的方式:module.exports和exports
在文件a.js中用exports或module.exports导出的对象(方法、变量),可以在另一个文件b.js中通过require('./a')引用
module和exports是Node.js给每个js文件内置的两个对象。可以通过console.log(module)和console.log(exports)打印出来。如果你在main.js中写入下面两行,然后运行$ node main.js:require引入的对象本质上是module.exports。这就产生了一个问题,当 module.exports和exports指向的不是同一块内存时,exports的内容就会失效比如:
module.exports = {name: '叔叔'};
exports = {name: '阿姨'}
此时
module.exports指向了一块新的内存(该内存的内容为{name: '叔叔'}),exports指向了另一块新的内存(该内存的内容为{name: '阿姨'})。require得到的是{name: '叔叔'}。结果是
引入 let people = require('./people');
console.log(people);//输出:{name: '叔叔'}
浙公网安备 33010602011771号