exports 与 module.exports区别
一.
1. module.exports初始值是一个空对象
2. exports 是指向 module.exports的引用
3. require()返回的module.exports而不是 exports
二.
系统自动给nodejs 文件增加2个变量 exports 和 module, module 又有一个属性 exports, 这个exports 属性指向一个空对象 {}; 同时 exports这个变量也指向了这个空对象{};
于是就有了 exports => {} <=module.exports.
这2个exports 其实是没有直接关系的,唯一的关系是: 他们初始都指向同一个空对象{}; 如果其中一个不指向做个空对象了, 那么他们的关系就没有了.
三.
require()的对象和module.exports都是指向同一个对象,require相当于是指针拷贝,即引用拷贝,不是值拷贝