nodejs中module.exports与exports的区别总结

require引用的是module.exports这个对象,而不是exports对象
当我们在nodejs中导出某个值的时候,经常会使用下面两种下法

// 写法一,通过exports引用module.exports导出
// 这里如果exports = a,它会切掉指向module.exports指向地址的引用,所以不会改变module.exports对象的内容
exports.a = function() {
  console.log('a')
}
// 实际上只是
let exports;
exports = module.exports = {}
exports.a = function() {
  console.log('a')
}
的简化而已

// 写法二,直接导出
module.exports = { a: 'a' }

总结:两者的区别在于exports是变量,指向module.exports,而module.exportsmodule对象上exports属性{},共同点最终导出的都是module.exports的值

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容