exports和module.exports都是可以导出文件中的变量,方法的
其中,exports是module.exports的引用,意思是如果在exports上添加属性,会改变module.exports对象
举个例子:A文件中
module.exports.a = 1
export.b = 2
此时 require('A')返回的就是{a:1, b:2}
特殊:当使用module.exports = {a : 1}
这时候就相当于module.exports指向了新的内存地址,有了新的引用,而exports还指向的以前的module.exports
故相当于切断了exports与module.exports之间的联系,这时
exports.b = 2
此时require('A')只会返回{a: 1}
在require('A').b是访问不到的,是undefined,如果是方法,直接执行,会报错require('A').b is not a function
所以:1.一般如果要对module.exports重新赋值,改变引用,就这样写
const a = 1
const b = 2
module.export {
a,b
}
2.module.exports.a = 1
module.export.b = 2
3.exports.a= 1
exports.b = 2
4.module.exports.a = 1
exports.b = 2
这几种都是没问题的