node.js中可以使用module.exports和exports两种方式导出模块中的接口。
两者的关系如下:
exports = module.exports;
exports是modle.export的引用,因此exports的属性修改会与module.exports同步,但是如果直接给exports赋值,则exports对module.exports的引用就会被重置,导出的接口就会失效。
例如:
exports = {
name:"koastal",
age:24
};
该模块不会导出任何数据,引用结果为{}
,因为exports对module.export的引用已经被重置到新的对象了。
个人觉得良好的使用习惯是不使用exports,全部使用module.exports,会避免不少麻烦。