码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-31 13:12:09      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:out   rip   i++   套接字   width   存在   rem   关系   上下   

我们来看张图, 看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学习之----模块机制篇

标签:out   rip   i++   套接字   width   存在   rem   关系   上下   

原文地址:https://www.cnblogs.com/cczlovexw/p/11770406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!