关于本文档#

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

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

贡献#

请在问题跟踪器中报告本文档的错误。关于如何提交拉取请求(pull request)的说明,请参阅贡献指南

稳定性指数#

在整个文档中,都会标示出某个部分的稳定性。有些 API 已经过充分验证且被广泛依赖,因此基本不会发生任何变化。而另一些则是全新的实验性功能,或者已知存在风险。

稳定性指数如下:

稳定性:0 - 已弃用。该特性可能会产生警告。不保证向后兼容。

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

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

  • 1.0 - 早期开发。此阶段的实验性特性尚未完成,可能会有重大变更。
  • 1.1 - 积极开发。此阶段的实验性特性已接近最小可行性。
  • 1.2 - 候选发布。此阶段的实验性特性有望准备好成为稳定功能。预计不会再有破坏性变更,但仍可能根据用户反馈或其底层规范的演进而发生变化。我们鼓励用户进行测试并提供反馈,以便我们确认该特性是否已准备好被标记为稳定。

实验性特性通常会通过升级为稳定版或在没有弃用周期的情况下被移除,从而脱离实验状态。

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

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

如果某个特性的使用不会造成危害,并且在 npm 生态系统中被广泛依赖,那么它会被标记为“遗留”而不是“已弃用”。在遗留特性中发现的错误不太可能被修复。

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

稳定性概览#

API稳定性
断言 (Assert)(2) 稳定
异步钩子(1) 实验性
异步上下文跟踪(2) 稳定
缓冲区(2) 稳定
子进程 (Child process)(2) 稳定
集群(2) 稳定
控制台(2) 稳定
加密(2) 稳定
诊断通道(2) 稳定
DNS(2) 稳定
(0) 已弃用
文件系统(2) 稳定
HTTP(2) 稳定
HTTP/2(2) 稳定
HTTPS(2) 稳定
检查器(2) 稳定
模块:node:module API(1) .2 - 候选发布(异步版本) 稳定性:1.1 - 积极开发(同步版本)
模块:CommonJS 模块(2) 稳定
模块:TypeScript(1) .2 - 候选发布
操作系统(2) 稳定
路径(2) 稳定
性能测量 API (Performance measurement APIs)(2) 稳定
Punycode(0) 已弃用
查询字符串 (Query string)(2) 稳定
逐行读取(2) 稳定
REPL(2) 稳定
单一可执行文件应用(1) .1 - 积极开发
SQLite(1) .1 - 积极开发。
(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 和其他使用该文档的工具。

系统调用和手册页#

对系统调用进行封装的 Node.js 函数会对此进行说明。文档会链接到描述该系统调用工作原理的相应手册页(man page)。

大多数 Unix 系统调用都有对应的 Windows 版本。尽管如此,行为上的差异可能无法避免。