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號