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

Posted cczlovexw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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提供的模块,称为核心模块;

 

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

技术图片

以上是关于Node学习之----模块机制篇的主要内容,如果未能解决你的问题,请参考以下文章

Node学习之(第二章:http模块)

前端模块化开发学习之gulp&amp;browserify篇

02 Node.js学习之http服务

Android学习之——优化篇

linux学习之进程篇

python学习之基础篇2 模块(持续更新)