Nodejs极简入门教程(1):模块机制

Javascript规范(ECMAscript)没有定义标准库,可以应用于大多数programs.commonjs完美集合提供了一系列的Javascript标准库节点实现CommonJS规范规格。

模块库

在节点模块和文件one-to-one.we定义模块:

复制代码代码如下所示:

/ / circle.js

VaR PI = math.pi;



导出功能区

exports.area =函数(R){

返回pi;

}



输出函数周长

exports.circumference =函数(R){

返回2×pi;

};



在这里,衍生功能添加到出口对象。局部变量不能访问外部模块(例如,在上面的PI变为例),调用需要加载模块circle.js:

复制代码代码如下所示:

var循环=需要(;

console.log(一个半径为4的圆的面积)

+ circle.area (4));



附带的,在模块中,有一个模块对象表示模块本身,而导出是模块的属性。

模块加载

节点将缓冲加载的模块,以避免重新加载的开销:

复制代码代码如下所示:

/ / test.js

console.log(我);



多个加载模块test.js

复制代码代码如下所示:

只有一个输出

需要({测试});

需要({测试});



当加载文件不是后缀时,节点尝试添加后缀和加载:

1 .. Js(Javascript源文件)

2、Node(C / C++扩展模块)

3 .. JSON(JSON文件)

有几种类型的模块:

1。核心模块,核心模块已编译成节点,并在其源代码中找到核心目录中的核心模块,常用核心模块:网络、HTTP、FS模块等。

2。file module.The file module is loaded by a relative or absolute path, such as the circle.js we see above

三.自定义模块,自定义模块位于node_modules目录,我们把所有安装在node_modules NPM模块目录

核心模块总是先加载。如果有一个自定义模块的HTTP,它会加载内核模块的自定义模块的HTTP HTTP而不是当加载。加载自定义模块时,会在当前目录的node_modules目录先看看,然后寻找父目录下node_modules目录,等等,直到根目录。

需要加载的模块不是一个文件,但一个目录名包。有一个文件名为package.json(软件包描述文件)在包中,例如:

复制代码代码如下所示:

{名称:一些库





主要指出了需要加载的模块。如果在包装或package.json没有package.json不指定主模块,节点会尝试加载index.js,index.node和index.json。

加载Javascript模块时,加载的模块被封装在一个函数中:

复制代码代码如下所示:

功能(模块、出口,__filename,__dirname,…){

Javascript模块

}



模块,出口,__filename,__dirname,访问每个Javascript模块等实际上是通过函数参数。因为这个包,该模块的局部变量不能被外部访问。但有时候是很难理解的问题,如:

test1.js

复制代码代码如下所示:

导出= {

名称:'name5566,

}



test2.js

复制代码代码如下所示:

module.exports = { {

名称:'name5566,

}



加载这两个模块:

复制代码代码如下所示:

var test1 =需要('。 / test1 .js);

console.log(test1。名称); / /未定义

VaR TEST2 =需要('。 / test2。JS的);

console.log(test2。名称); / / name5566



导出作为参数传递给模块。我们可以通过导出来自然地向导出对象添加属性(或方法)。但是直接将值赋给导出(例如,导出= x)仅仅是改变一个参数的参数而不是实际参数的值。

1。在向出口添加属性时,使用导出

当2。被分配到出口,用module.exports

包裹

根据CommonJS规范,一个完整的方案应包括:

1.package.json包描述文件

2.bin二进制文件目录

3.lib Javascript代码目录

4.doc文件目录

5.test测试代码目录

NPM是节点的包管理工具。常见的用法:

查看命令文档:

复制代码代码如下所示:

NPM帮助安装



查看命令安装的文档。

安装包:

复制代码代码如下所示:

NPM安装使用



使用包安装。安装命令将安装包中的node_modules目录当前目录下。

删除软件包:

复制代码代码如下所示:

NPM删除redis



删除redis包。删除命令将从当前目录删除分组移位。