dimmer

 

module.exports和exports的区别

在学习Node.js时,经常能看到两种导出模块的方式:module.exportsexports

在文件a.js中用exports或module.exports导出的对象(方法、变量),可以在另一个文件b.js中通过require('./a')引用

moduleexportsNode.js给每个js文件内置的两个对象。可以通过console.log(module)console.log(exports)打印出来。如果你在main.js中写入下面两行,然后运行$ node main.js:
 
require引入的对象本质上是module.exports。这就产生了一个问题,当 module.exportsexports指向的不是同一块内存时,exports的内容就会失效
比如:
module.exports = {name: '叔叔'};
exports = {name: '阿姨'}

此时module.exports指向了一块新的内存(该内存的内容为{name: '叔叔'}exports指向了另一块新的内存(该内存的内容为{name: '阿姨'})。require得到的是{name: '叔叔'}
 
结果是
引入  let people = require('./people');
      console.log(people);//输出:{name: '叔叔'}


 

posted on 2022-03-31 18:10  布灵的大乔  阅读(86)  评论(0编辑  收藏  举报

导航