nodejs中exports和module.exports的区别

  最近一边找工作,一边跟着coderwhy老师学习nodejs,其中涉及到nodejs中exports和module.exports区别的问题,其中细节颇深,仔细想来,还是应该具体总结一下,以做巩固:

  1,通过维基百科中对commonjs的解析,commonjs中是没有module.exports的概念的;

  2,nodejs中通过require导入,导入的永远都是module.exports,而不是exports;

  3,之所以我们可以使用exports导出,其实是因为再nodejs源码中默认做了module.exports = exports这样的操作(这个操作是在顶部的);

  

就是说,exports和module.exports其实是两个东西,只不过module.exports一开始是指向了exports这个指向的这个对象;

也就是说,如果我们更改了module.exports的指向,那边导入导出,就与exports没有什么关系了,如使用以下方式导出:

text1文件:

module.exports = {

  name: 'meng'

}

exports.age = 18;

 

 

text2文件:

var bar = require('./text1');

console.log(bar);  // 这里打印的是{name: 'meng'},而不是{age:18}

 

posted @ 2020-11-04 11:39  灰猫趴在窗台上  阅读(163)  评论(0)    收藏  举报