Jiahonzheng's Blog

Node 中的 exports 和 module.exports

字数统计: 158阅读时长: 1 min
2018/03/26 Share

Node 的模块系统遵循的是 CommonJS 规范。 CommonJS 定义的模块分为:

  • 模块标识,即 module
  • 模块定义,即 exports
  • 模块引用,即 require

在模块引用时,require 只能识别 module.exports 对象,而不能识别 exports 对象,故我们在编写模块时,使用的 exports 对象实际上为 module.exports 的引用.

exports 即为 module.exports 的别名,是用来简化书写的,我们只能对 exports 的属性进行修改,一旦修改了 exports 本身的引用,那么exports 内的内容无法被导出引用。

1
2
3
4
5
6
7
8
9
// 正确
exports.foo = foo;
exports.bar = bar;

// 错误
exports = {
foo: foo,
bar: bar
};
CATALOG