module.exports 和 exports
这两个是属于 Node.js中的导出模块的方法
1. exports 是 module.exports 的一个引用
2. require()返回的是module.exports而不是exprots 因为他们之间指向的是堆中的同一块内存, 所以这两种导出方式都可以使用
3. module.exports 默认是一个空对象{},如果 exprots 被赋值为一个新的对象的话,它会和 module.exports 失去连接关系,从而require()加载不到导出的东西
module.exports
module.exports属性表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。
exports
为了方便,Node为每个模块提供一个exports变量,指向module.exports。这等同在每个模块头部,有一行这样的命令 var exports= module.exports。
如果使用exports导出模块的话,只能为exports对象添加方法或者属性,不能将其重新赋值,重新赋值就会切断与module.exports的联系!! 如果给exports添加了属性或方法,module.exports也不能重新赋值,如果重新赋值,就改变了引用关系,之前和exports引用的关系改变了,所以exports加进去的方法也不会导出,因为每个模块require()加载的都是module.e