[摘抄] 1.概述
阮一峰老师的教程,自己手打了一遍,原文地址(http://www.w3cbus.com/nodejs/module.html#toc0);
CommonJs规范
1.概述
Node应用由模块组成,采用CommonJS模块规范。
- 根据这个规范,每一个文件就是一个模块,有自己的作用域。
- 在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
// example.js
var x =5 ;
var addX = function (value) {
return value+x;
}
上面代码中,变量x和函数addX,是当前文件example.js 私有的,其他文件不可见。
如果想在多个文件分享变量,必须定义global对象的属性。
global.warning = true;
上面代码的warning变量,可以被所有文件读取,当然,这样的写法是不推荐的。
CommonJS规范规定,每个模块内部,module变量代表当前模块。
这个变量是一个对象,他的exports属性(module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性
var x = 5;
var addX = function (value) {
return value + x;
};
module.export = {
x,
addX
};
上面代码通过moudle.exports输出变量x和函数addX。
require方法用于加载模块。
var example = require('./example.js');
console.log(example.x); //5
console.log(example.addX(1)); //6
CommonJS模块的特点如下:
> 所有代码都运行在模块作用域,不会污染全局作用域。
> 模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结构就被缓存了,以后再加载,就直接读取缓存结果,想要让模块再次运行,必须清楚缓存。
> 模块加载的顺序,按照其在代码中出现的顺序。

浙公网安备 33010602011771号