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}

浙公网安备 33010602011771号