2. node的模块简介

2019-07-10  本文已影响0人  萘小蒽

1. CommonJs规范

CommonJs对模块模块的定义非常简单,主要分为引用模块定义模块标识3个部分。

1. 模块引用

模块引用的示例代码如下:

var math = require('math');

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

2. 模块定义

对应引入的功能,上下文提供了exports对象用于导出当前模块的方法或者变量。而且它是唯一的导出的出口。
在模块中还存在一个module对象,它代表模块本身,exportsmodule的属性。
在node中一个文件就是一个模块,将方法挂载到exports对象上就能作为属性即可定义导出的方式。

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

在另一个文件中,我们通过require()方法引入模块后,就能调用上面导出的方法了;

//program.js
var math = require('./math').add
var sum  = math(1,2,3,4)
console.log(sum)
//10
3. 模块标识

模块标识其实就是传递给require()方法的参数

模块标识必须是以小驼峰命名的字符,或者以···开头的相对路径或者绝对路径,它可以没有文件名后缀(.js)。

模块的定义简单,接口简洁,它的意义是将类聚的发方法和变量等限定在私有的作用域中,同时支持引入和到处功能顺畅的连接上下文依赖。如下面图所示,每个模块具有独立的空间,他们互不干扰,在引用时也显得利落。


模块之间导入导出
上一篇下一篇

猜你喜欢

热点阅读