Node学习之----模块机制篇

我们来看张图, 看node与W3C组织、CommonJS组织、ECMAScript之间的关系。

    Node借鉴来CommonJS的Modules规范实现了一套非常易用的模块系统,NPM对Packages规范
的完好支持使得Node应用在开发过程中事半功倍。

一、CommonJS 的模块规范

CommonJS中的大部分规范涵盖了模块、二进制、Buffer、字符集编码、I/O流、进程环境、文件系统、套接字、单元测试、Web服务器网关接口、包管理等。

1. 模块引用
模块示例代码如下:

var math = require('math'); 

在CommonJS规范中,存在require()方法,这个方法接受模块标识,以此引入一个模块的API到当前上下文中。

2.模块定义

在模块中,上下文提供require()方法引入外部模块。对应引入的功能,上下文提供了exports对象用于导出当前模块的方法或者变量,并且它是唯一导出的出口。

例如:

// math.js
exports.add = function () { 
 var sum = 0, 
 i = 0, 
 args = arguments, 
 l = args.length; 
 while (i < l) { 
sum += args[i++]; 
 } 
 return sum; 
}; 

// program.js
var math = require('math'); 
exports.increment = function (val) { 
 return math.add(val, 1); 
}; 

3.模块标识

    简单理解就是传递给require()方法的参数,必须使用小驼峰命名的字符串,或者使用相对路径,亦可使用绝对路径。

Tip: 可以没有.js文件名后缀。

CommonJS导出和引入机制,我们不需要考虑变量污染、命名空间等。

二、Node的模块实现

在Node中引入模块,要经历3个步骤:
(1) 路径引入
(2) 文件定位
(3) 编译执行

Node模块分两种,一种是Node提供的模块,称为核心模块;

欢迎关注公众号,进一步技术交流:

猜你喜欢

转载自www.cnblogs.com/cczlovexw/p/11770406.html