关于本文档#

欢迎查阅 Node.js 官方 API 参考文档!

Node.js 是一个基于 V8 JavaScript 引擎构建的 JavaScript 运行时。

贡献#

若要在本文档中报告错误,请使用 问题追踪器 (issue tracker)。有关如何提交拉取请求 (pull requests) 的说明,请参阅 贡献指南

稳定性索引#

文档通篇都有关于各章节稳定性的标识。某些 API 经过充分验证且被广泛依赖,极不可能发生变更。另一些 API 则是全新的、实验性的,或已知存在风险的。

稳定性索引如下:

稳定性:0 - 已废弃。该特性可能会发出警告。不保证向后兼容性。

稳定性:1 - 实验性。该特性不受 语义化版本控制 (semantic versioning) 规则约束。在未来的任何版本中,都可能发生不兼容的变更或被移除。不建议在生产环境中使用该特性。

实验性特性细分为以下阶段:

  • 1.0 - 早期开发。处于此阶段的实验性特性尚不完善,可能会发生重大变更。
  • 1.1 - 活跃开发。处于此阶段的实验性特性正趋于最小化可用状态。
  • 1.2 - 发布候选版本。处于此阶段的实验性特性有望成为稳定版本。预计不会再有破坏性变更,但为响应用户反馈或特性的底层规范开发,仍可能发生变动。我们鼓励用户进行测试并反馈,以便我们确认该特性是否已准备好被标记为稳定。

实验性特性通常通过升级为稳定版,或在没有废弃周期的情况下被移除来结束其实验性状态。

稳定性:2 - 稳定。与 npm 生态系统的兼容性是重中之重。

稳定性:3 - 遗留。虽然该特性不太可能被移除且仍受语义化版本控制保证,但它已不再积极维护,且已有其他替代方案可用。

若特性的使用不会造成危害且在 npm 生态系统中被广泛依赖,则会被标记为“遗留”而非“已废弃”。遗留特性中发现的 bug 不太可能会被修复。

在使用实验性特性时请务必谨慎,尤其是在编写库时。用户可能并未意识到正在使用实验性特性。当实验性 API 发生修改时,bug 或行为变更可能会令用户感到困惑。为避免意外,使用实验性特性可能需要命令行标志。实验性特性也可能会发出 警告

稳定性概述#

API稳定性
Assert(2) 稳定
异步钩子(1) 实验性
异步上下文跟踪(2) 稳定
缓冲区(2) 稳定
子进程 (Child process)(2) 稳定
集群(2) 稳定
控制台(2) 稳定
加密(2) 稳定
调试器(2) 稳定
诊断报告 (Diagnostic report)(2) 稳定
诊断通道(2) 稳定
DNS(2) 稳定
(0) 已废弃
事件(2) 稳定
文件系统(2) 稳定
全局对象(2) 稳定
HTTP(2) 稳定
HTTP/2(2) 稳定
HTTPS(2) 稳定
检查器(2) 稳定
可迭代压缩 (Iterable Compression)(1) 实验性
可迭代流 (Iterable Streams)(1) 实验性
模块:CommonJS 模块(2) 稳定
模块:ECMAScript 模块(2) 稳定
模块:TypeScript(2) 稳定
网络(2) 稳定
Node-API(2) 稳定
操作系统(2) 稳定
路径(2) 稳定
性能测量 API(2) 稳定
Punycode(0) 已废弃
查询字符串 (Query string)(2) 稳定
逐行读取(2) 稳定
REPL(2) 稳定
单一可执行文件应用(1.1) 活跃开发
SQLite(1.2) 发布候选版本
(2) 稳定
字符串解码器(2) 稳定
测试运行器(2) 稳定
定时器(2) 稳定
TLS (SSL)(2) 稳定
跟踪事件(1) 实验性
TTY(2) 稳定
UDP/数据报套接字 (UDP/datagram sockets)(2) 稳定
URL(2) 稳定
Util(2) 稳定
VM (执行 JavaScript)(2) 稳定
Web Crypto API(2) 稳定
Web Streams API(2) 稳定
WebAssembly 系统接口 (WASI)(1) 实验性
工作线程(2) 稳定
Zlib(2) 稳定

JSON 输出#

每个 .html 文档都有对应的 .json 文档。这是为了方便集成开发环境 (IDE) 和其他使用文档的实用程序。

系统调用与 man 手册页#

封装系统调用的 Node.js 函数会进行相应记录。文档中提供了指向描述该系统调用工作原理的对应 man 手册页的链接。

大多数 Unix 系统调用都有 Windows 对应项。尽管如此,行为上的差异往往不可避免。