node Commonjs规范

1、Commonjs中关键字

(1)require:引入模块,参数是模块标识,若不在node_modules下,会去路径下查找。

(2)export是一个对象,它的任何输出都将作为一个对外暴露的公共API。

2、Nodejs的Commonjs实现

(1)Nodejs中,真正对外暴露对象是module.export,而export仅仅是一个变量,默认是绑定到module.export上,即module.export。

(2)真正Commonjs规范是没有module.export对象的。

3、示例代码

(1)

exports.age = 1
exports.name = 'test'
module.exports.sex = 'male'

输出:

说明exports对象上的属性和方法会自动绑定到module.export上。

 (2)

exports.age = 1
module.exports.age = 2

or:

module.exports.age = 2
exports.age = 1

 即:export和module.export上均有一个相同属性(方法)时,后面会覆盖前面属性,即后面定义为准。

(3)

module.exports.age = 1
module.exports.name = 'mfg'
module.exports= 'module'

or:

module.exports= 'module'
module.exports.age = 1
module.exports.name = 'mfg'

均输出:

 说明module.export这个对象整体被重新赋值后,导出的就是重新赋值的内容,其他属性和方法不能对外暴露了。

4、强调

(1)module.export只能对外暴露一个对象。

(2)module.export和export引用的是同一个对象。

(2)require只会加载一次,其他情况都在缓存中加载,不需要重新加载 。

原文地址:https://www.cnblogs.com/mengfangui/p/12383409.html