核心模块
Node.js 是一个 Javascript 引擎(用于 Chrome 的谷歌 V8 引擎,用 C++编写),允许在浏览器外运行 Javascript。虽然有许多库可用于扩展 Node 的功能,但该引擎附带了一组实现基本功能的核心模块。
Node 目前包含 34 个核心模块:
[ 'assert',
'buffer',
'c/c++_addons',
'child_process',
'cluster',
'console',
'crypto',
'deprecated_apis',
'dns',
'domain',
'Events',
'fs',
'http',
'https',
'module',
'net',
'os',
'path',
'punycode',
'querystring',
'readline',
'repl',
'stream',
'string_decoder',
'timers',
'tls_(ssl)',
'tracing',
'tty',
'dgram',
'url',
'util',
'v8',
'vm',
'zlib' ]
此列表是从 Node 文档 API https://nodejs.org/api/all.html(JSON 文件: https : //nodejs.org/api/all.json )获得的。
所有核心模块一目了然
断言
assert
模块提供了一组简单的断言测试,可用于测试不变量。
缓冲
在 ECMAScript 2015(ES6)
中引入 TypedArray
之前,JavaScript 语言没有读取或操作二进制数据流的机制。Buffer
类是作为 Node.js API 的一部分引入的,可以在 TCP 流和文件系统操作等环境中与八位字节流进行交互。
现在 TypedArray
已 ES6 被添加,所述 Buffer
类实现 Uin t8Array
的方式,是更优化和适合的 Node.js’用例的 API。
C / C++ _插件
Node.js Addons 是动态链接的共享对象,用 C 或 C++编写,可以使用 require()
函数加载到 Node.js 中,就像它们是普通的 Node.js 模块一样。它们主要用于提供 Node.js 中运行的 JavaScript 与 C / C++库之间的接口。
child_process
child_process
模块提供了以与 popen(3)
类似但不相同的方式生成子进程的能力。
Node.js 的单个实例在单个线程中运行。为了利用多核系统,用户有时会想要启动一个 Node.js 进程集群来处理负载。群集模块允许你轻松创建所有共享服务器端口的子进程。
控制台
console
模块提供了一个简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台机制。
加密
crypto
模块提供加密功能,包括一组用于 OpenSSL 哈希,HMAC,密码,解密,签名和验证功能的包装器。
deprecated_apis
当以下情况之一时,Node.js 可以弃用 API:(a)API 的使用被认为是不安全的,(b)已经提供了改进的替代 API,或者(c)在未来的主要版本中预计会对 API 进行重大更改。
DNS
dns
模块包含属于两个不同类别的功能:
- 使用基础操作系统工具执行名称解析但不一定执行任何网络通信的函数。此类别仅包含一个功能:
dns.lookup()
。 - 连接到实际 DNS 服务器以执行名称解析并始终使用网络执行 DNS 查询的函数。此类别包含
dns
模块中除dns.lookup()
之外的所有功能。
域
此模块正在等待弃用。替换 API 完成后,将完全弃用此模块。大多数最终用户应该不会有因使用此模块。绝对必须具有域提供的功能的用户可能暂时依赖它,但是应该期望将来必须迁移到不同的解决方案。
Node.js 核心 API 的大部分是围绕一个惯用的异步事件驱动架构构建的,其中某些类型的对象(称为发射器)周期性地发出命名事件,导致调用 Function 对象(侦听器)。
FS
文件 I / O 由标准 POSIX 函数的简单包装提供。使用这个模块做 require('fs')
。所有方法都有异步和同步形式。
Node.js 中的 HTTP 接口旨在支持传统上难以使用的协议的许多功能。特别是,大的,可能是块编码的消息。界面小心永远不会缓冲整个请求或响应 - 用户能够流式传输数据。
HTTPS
HTTPS 是 TLS / SSL 上的 HTTP 协议。在 Node.js 中,这是作为一个单独的模块实现的。
模
Node.js 有一个简单的模块加载系统。在 Node.js 中,文件和模块是一一对应的(每个文件都被视为一个单独的模块)。
净
net
模块为你提供异步网络包装器。它包含用于创建服务器和客户端(称为流)的功能。你可以将此模块包含在 require('net');
中。
口
os
模块提供了许多与操作系统相关的实用方法。
路径
path
模块提供了处理文件和目录路径的实用程序。
Punycode 码
不推荐使用 Node.js 中绑定的 punycode 模块的版本。
请求参数
querystring
模块提供用于解析和格式化 URL 查询字符串的实用程序。
readline
模块提供了一个接口,用于一次一行地读取可读流(例如 process.stdin
)中的数据。
REPL
repl
模块提供 Read-Eval-Print-Loop(REPL)
实现,既可作为独立程序使用,也可作为其他应用程序使用。
流是一个抽象接口,用于处理 Node.js 中的流数据。stream
模块提供了一个基本 API,可以轻松构建实现流接口的对象。
Node.js 提供了许多流对象。例如,对 HTTP 服务器和 process.stdout
的请求都是流实例。
string_decoder
string_decoder
模块提供了一个 API,用于以保留编码的多字节 UTF-8 和 UTF-16 字符的方式将 Buffer
对象解码为字符串。
计时器
timer
模块公开了一个全局 API,用于调度将来某个时间调用的函数。因为计时器函数是全局变量,所以不需要调用 require('timers')
来使用 API。
Node.js 中的计时器函数实现与 Web 浏览器提供的计时器 API 类似的 API,但使用围绕 Node.js 事件循环构建的不同内部实现。
tls_(SSL)
tls
模块提供了基于 OpenSSL 构建的传输层安全性(TLS)和安全套接字层(SSL)协议的实现。
追踪
跟踪事件提供了一种机制来集中由 V8,节点核心和用户空间代码生成的跟踪信息。
可以通过在启动 Node.js 应用程序时传递 --trace-events-enabled
标志来启用跟踪。
TTY
tty
模块提供 tty.ReadStream
和 tty.WriteStream
类。在大多数情况下,没有必要或不可能直接使用该模块。
DGRAM
dgram
模块提供 UDP 数据报套接字的实现。
网址
url
模块提供用于 URL 解析和解析的实用程序。
UTIL
util
模块主要用于支持 Node.js 自己的内部 API 的需求。但是,许多实用程序对应用程序和模块开发人员也很有用。
V8
v8
模块公开了特定于 Node.js 二进制文件中内置的 V8 版本的 API。
注意 :API 和实现可能随时更改。
VM
vm
模块提供用于在 V8 虚拟机上下文中编译和运行代码的 API。JavaScript 代码可以立即编译和运行,也可以编译,保存并稍后运行。
注意 :vm 模块不是安全机制。不要使用它来运行不受信任的代码。
zlib
zlib
模块提供使用 Gzip 和 Deflate / Inflate 实现的压缩功能。