exports 和 module.exports
的一个引用:
console.log(exports === module.exports) // => true
exports.foo ='bar'
//等价于
module.exports.foo = 'bar'
exports和module.exports 的区别
每个模块中都有一个module 对象
module 对象中有一个exports 对象
我们可以把需要导出的成员都挂载到 module.exports 接口对象中
也就是:moudle.exports.xxx = xxx
的方法
但是每次moudle.exports.xxx = xxx
很麻烦
所以 Node 为了方便 ,同时在每个模块中提供一个成员叫做 exports
所以对于:moudle.exports.xxx = xxx
的方式 完全可以 exports.xxx = xxx
但是当一个模块需要导出单个成员的时候,这个时候必须使用 moudle.exports.xxx = xxx
的方式
不要使用exports.xxx = xxx
不管用
因为每个模块最终向外 return 的是 module.exports
即使exports.xxx = xxx
重新赋值,也不会影响 module.exports
但是有一种赋值方式比较特殊:exports =module.exports
这个用来重新件里引用关系的
真正去使用的时候:
导出多个成员: exports.xxx = xxx
到处多个成员也可以: module.exports ={
}
导出单个成员: module.exports=xxx