已弃用的 API
Node.js API 可能由于以下任何原因而被弃用:
- 使用该 API 不安全。
- 提供了改进的替代 API。
- 未来主要版本中预计会对该 API 进行重大更改。
Node.js 使用四种弃用类型:
- 仅文档弃用
- 应用程序弃用(仅限非
node_modules
代码) - 运行时弃用(所有代码)
- 寿命终止
仅文档弃用是指仅在 Node.js API 文档中表达的弃用。这些在运行 Node.js 时不会产生任何副作用。一些仅文档弃用在使用 --pending-deprecation
标志(或其替代方案 NODE_PENDING_DEPRECATION=1
环境变量)启动时会触发运行时警告,类似于下面的运行时弃用。支持该标志的仅文档弃用在 已弃用 API 列表 中被明确标记。
仅限非 node_modules
代码的应用程序弃用默认情况下会生成一个进程警告,该警告会在第一次在未从 node_modules
加载的代码中使用已弃用的 API 时打印到 stderr
。当使用 --throw-deprecation
命令行标志时,运行时弃用将导致抛出错误。当使用 --pending-deprecation
时,也会为从 node_modules
加载的代码发出警告。
所有代码的运行时弃用类似于非 node_modules
代码的运行时弃用,只是它还会为从 node_modules
加载的代码发出警告。
当功能即将从 Node.js 中删除时,将使用寿命终止弃用。
撤销弃用
有时,API 的弃用可能会被撤销。在这种情况下,本文档将更新与该决定相关的信息。但是,弃用标识符不会被修改。
已弃用 API 列表
DEP0001: http.OutgoingMessage.prototype.flush
[历史]
版本 | 变更 |
---|---|
v14.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v1.6.0 | 运行时弃用。 |
类型:生命周期结束
OutgoingMessage.prototype.flush()
已被移除。请改用 OutgoingMessage.prototype.flushHeaders()
。
DEP0002: require('_linklist')
[历史]
版本 | 变更 |
---|---|
v8.0.0 | 生命周期结束。 |
v6.12.0 | 已分配弃用代码。 |
v5.0.0 | 运行时弃用。 |
类型:生命周期结束
_linklist
模块已弃用。请使用用户空间替代方案。
DEP0003: _writableState.buffer
[历史]
版本 | 变更 |
---|---|
v14.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.15 | 运行时弃用。 |
类型:生命周期结束
_writableState.buffer
已被移除。请改用 _writableState.getBuffer()
。
DEP0004: CryptoStream.prototype.readyState
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 终止生命周期。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.4.0 | 仅文档弃用。 |
类型:终止生命周期
CryptoStream.prototype.readyState
属性已被移除。
DEP0005: Buffer()
构造函数
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 运行时弃用。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 仅文档弃用。 |
类型:应用程序(仅限非 node_modules
代码)
Buffer()
函数和 new Buffer()
构造函数由于 API 可用性问题(可能导致意外的安全问题)而被弃用。
作为替代方案,请使用以下其中一种方法来构造 Buffer
对象:
Buffer.alloc(size[, fill[, encoding]])
:创建一个具有已初始化内存的Buffer
。Buffer.allocUnsafe(size)
:创建一个具有未初始化内存的Buffer
。Buffer.allocUnsafeSlow(size)
:创建一个具有未初始化内存的Buffer
。Buffer.from(array)
:创建一个包含array
复制副本的Buffer
。Buffer.from(arrayBuffer[, byteOffset[, length]])
:创建一个包装给定arrayBuffer
的Buffer
。Buffer.from(buffer)
:创建一个复制buffer
的Buffer
。Buffer.from(string[, encoding])
:创建一个复制string
的Buffer
。
如果没有 --pending-deprecation
,则只有不在 node_modules
中的代码才会出现运行时警告。这意味着对于依赖项中的 Buffer()
使用不会出现弃用警告。使用 --pending-deprecation
,无论 Buffer()
使用发生在哪里,都会出现运行时警告。
DEP0006: child_process
options.customFds
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.14 | 运行时弃用。 |
v0.5.10 | 仅文档弃用。 |
类型:生命周期结束
在child_process
模块的 spawn()
、fork()
和 exec()
方法中,options.customFds
选项已弃用。应该改用 options.stdio
选项。
DEP0007: 将 cluster
worker.suicide
替换为 worker.exitedAfterDisconnect
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 生命周期结束。 |
v7.0.0 | 运行时弃用。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 仅文档弃用。 |
类型:生命周期结束
在早期版本的 Node.js cluster
中,一个名为 suicide
的布尔属性被添加到 Worker
对象中。此属性的目的是提供关于 Worker
实例如何以及为何退出的指示。在 Node.js 6.0.0 中,旧属性已弃用,并替换为新的 worker.exitedAfterDisconnect
属性。旧属性名称没有精确描述实际语义,并且不必要地带有感情色彩。
DEP0008: require('node:constants')
[历史]
版本 | 变更 |
---|---|
v6.12.0 | 已分配弃用代码。 |
v6.3.0 | 仅文档弃用。 |
类型:仅文档
node:constants
模块已弃用。当需要访问与特定 Node.js 内建模块相关的常量时,开发者应改为引用相关模块公开的 constants
属性。例如,require('node:fs').constants
和 require('node:os').constants
。
DEP0009: 不指定摘要的 crypto.pbkdf2
[历史]
版本 | 变更 |
---|---|
v14.0.0 | 生命周期结束(对于 digest === null )。 |
v11.0.0 | 运行时弃用(对于 digest === null )。 |
v8.0.0 | 生命周期结束(对于 digest === undefined )。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 运行时弃用(对于 digest === undefined )。 |
类型:生命周期结束
在 Node.js 6.0 中,不指定摘要使用 crypto.pbkdf2()
API 已被弃用,因为该方法默认使用不推荐的 'SHA1'
摘要。之前,会打印弃用警告。从 Node.js 8.0.0 开始,使用 digest
设置为 undefined
调用 crypto.pbkdf2()
或 crypto.pbkdf2Sync()
将抛出 TypeError
。
从 Node.js v11.0.0 开始,将这些函数的 digest
设置为 null
将打印弃用警告,以与 digest
为 undefined
时的行为保持一致。
但是,现在传递 undefined
或 null
都将抛出 TypeError
。
DEP0010: crypto.createCredentials
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.13 | 运行时弃用。 |
类型:生命周期结束
crypto.createCredentials()
API 已移除。请改用 tls.createSecureContext()
。
DEP0011: crypto.Credentials
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.13 | 运行时弃用。 |
类型:生命周期结束
crypto.Credentials
类已移除。请改用 tls.SecureContext
。
DEP0012: Domain.dispose
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.7 | 运行时弃用。 |
类型:生命周期结束
Domain.dispose()
已移除。请通过在域上设置的错误事件处理程序显式地从失败的 I/O 操作中恢复。
DEP0013: fs
异步函数无回调函数
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
v7.0.0 | 运行时弃用。 |
类型:生命周期结束
从 Node.js 10.0.0 开始,调用异步函数而不带回调函数会抛出 TypeError
。参见 https://github.com/nodejs/node/pull/12562。
DEP0014: fs.read
遗留的字符串接口
[历史]
版本 | 变更 |
---|---|
v8.0.0 | 生命周期结束。 |
v6.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.1.96 | 仅文档弃用。 |
类型:生命周期结束
fs.read()
遗留的 String
接口已弃用。请改用文档中提到的 Buffer
API。
DEP0015: fs.readSync
遗留的字符串接口
[历史]
版本 | 变更 |
---|---|
v8.0.0 | 生命周期结束。 |
v6.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.1.96 | 仅文档弃用。 |
类型:生命周期结束
fs.readSync()
遗留的 String
接口已弃用。请改用文档中提到的 Buffer
API。
DEP0016: GLOBAL
/root
[历史]
版本 | 变更 |
---|---|
v14.0.0 | 生命周期结束。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 运行时弃用。 |
类型:生命周期结束
global
属性的 GLOBAL
和 root
别名已在 Node.js 6.0.0 中弃用,并且已被移除。
DEP0017: Intl.v8BreakIterator
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 生命周期结束。 |
v7.0.0 | 运行时弃用。 |
类型:生命周期结束
Intl.v8BreakIterator
是一个非标准扩展,已被移除。参见 Intl.Segmenter
。
DEP0018: 未处理的 Promise 拒绝
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 生命周期结束。 |
v7.0.0 | 运行时弃用。 |
类型:生命周期结束
未处理的 Promise 拒绝已被弃用。默认情况下,未处理的 Promise 拒绝会使用非零退出代码终止 Node.js 进程。要更改 Node.js 处理未处理拒绝的方式,请使用 --unhandled-rejections
命令行选项。
DEP0019: require('.')
解析超出目录范围
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 已移除此功能。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v1.8.1 | 运行时弃用。 |
类型:生命周期结束
在某些情况下,require('.')
可能会解析到包目录之外。此行为已被移除。
DEP0020: Server.connections
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 已移除 Server.connections。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.9.7 | 运行时弃用。 |
类型:生命周期结束
Server.connections
属性在 Node.js v0.9.7 中已弃用,现已移除。请改用 Server.getConnections()
方法。
DEP0021: Server.listenFD
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.7.12 | 运行时弃用。 |
类型:生命周期结束
Server.listenFD()
方法已弃用并移除。请改用 Server.listen({fd: \<number\>})
方法。
DEP0022: os.tmpDir()
[历史]
版本 | 变更 |
---|---|
v14.0.0 | 生命周期结束。 |
v7.0.0 | 运行时弃用。 |
类型:生命周期结束
os.tmpDir()
API 已在 Node.js 7.0.0 中弃用,并且已被移除。请改用 os.tmpdir()
。
DEP0023: os.getNetworkInterfaces()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.6.0 | 运行时弃用。 |
类型:生命周期结束
os.getNetworkInterfaces()
方法已弃用。请改用 os.networkInterfaces()
方法。
DEP0024: REPLServer.prototype.convertToContext()
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 生命周期结束。 |
v7.0.0 | 运行时弃用。 |
类型:生命周期结束
REPLServer.prototype.convertToContext()
API 已被移除。
DEP0025: require('node:sys')
[历史]
版本 | 变更 |
---|---|
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v1.0.0 | 运行时弃用。 |
类型:运行时
node:sys
模块已弃用。请改用 util
模块。
DEP0026: util.print()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 终止生命周期。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.3 | 运行时弃用。 |
类型:终止生命周期
util.print()
已被移除。请改用 console.log()
。
DEP0027: util.puts()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 终止生命周期。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.3 | 运行时弃用。 |
类型:终止生命周期
util.puts()
已被移除。请改用 console.log()
。
DEP0028: util.debug()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 终止生命周期。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.3 | 运行时弃用。 |
类型:终止生命周期
util.debug()
已被移除。请改用 console.error()
。
DEP0029: util.error()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.3 | 运行时弃用。 |
类型:生命周期结束
util.error()
已被移除。请改用 console.error()
。
DEP0030: SlowBuffer
[历史]
版本 | 变更 |
---|---|
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 仅文档弃用。 |
类型:仅文档
SlowBuffer
类已弃用。请改用 Buffer.allocUnsafeSlow(size)
。
DEP0031: ecdh.setPublicKey()
[历史]
版本 | 变更 |
---|---|
v6.12.0 | 已分配弃用代码。 |
v5.2.0 | 仅文档弃用。 |
类型:仅文档
ecdh.setPublicKey()
方法现已弃用,因为它包含在 API 中并没有什么用处。
DEP0032: node:domain
模块
[历史]
版本 | 变更 |
---|---|
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v1.4.2 | 仅文档弃用。 |
类型:仅文档
domain
模块已弃用,不应使用。
DEP0033: EventEmitter.listenerCount()
[历史]
版本 | 变更 |
---|---|
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v3.2.0 | 仅文档弃用。 |
类型:仅文档
events.listenerCount(emitter, eventName)
API 已弃用。请改用 emitter.listenerCount(eventName)
。
DEP0034: fs.exists(path, callback)
[历史]
版本 | 变更 |
---|---|
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v1.0.0 | 仅文档弃用。 |
类型:仅文档
fs.exists(path, callback)
API 已弃用。请改用 fs.stat()
或 fs.access()
。
DEP0035: fs.lchmod(path, mode, callback)
[历史]
版本 | 变更 |
---|---|
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.4.7 | 仅文档弃用。 |
类型:仅文档弃用
fs.lchmod(path, mode, callback)
API 已弃用。
DEP0036: fs.lchmodSync(path, mode)
[历史]
版本 | 变更 |
---|---|
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.4.7 | 仅文档弃用。 |
类型:仅文档弃用
fs.lchmodSync(path, mode)
API 已弃用。
DEP0037: fs.lchown(path, uid, gid, callback)
[历史]
版本 | 变更 |
---|---|
v10.6.0 | 撤销弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.4.7 | 仅文档弃用。 |
类型:已撤销弃用
fs.lchown(path, uid, gid, callback)
API 曾被弃用。由于 libuv 中添加了必要的支持 API,因此撤销了弃用。
DEP0038: fs.lchownSync(path, uid, gid)
[历史]
版本 | 变更 |
---|---|
v10.6.0 | 取消弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.4.7 | 仅文档弃用。 |
类型:取消弃用
fs.lchownSync(path, uid, gid)
API 已被弃用。由于 libuv 中添加了必要的支持性 API,因此取消了弃用。
DEP0039: require.extensions
[历史]
版本 | 变更 |
---|---|
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.10.6 | 仅文档弃用。 |
类型:仅文档
require.extensions
属性已弃用。
DEP0040: node:punycode
模块
[历史]
版本 | 变更 |
---|---|
v21.0.0 | 运行时弃用。 |
v16.6.0 | 添加了对 --pending-deprecation 的支持。 |
v7.0.0 | 仅文档弃用。 |
类型:运行时
punycode
模块已弃用。请改用用户空间替代方案。
DEP0041: NODE_REPL_HISTORY_FILE
环境变量
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 终止生命周期。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v3.0.0 | 仅文档弃用。 |
类型:终止生命周期
NODE_REPL_HISTORY_FILE
环境变量已被移除。请改用 NODE_REPL_HISTORY
。
DEP0042: tls.CryptoStream
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 终止生命周期。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v0.11.3 | 仅文档弃用。 |
类型:终止生命周期
tls.CryptoStream
类已被移除。请改用 tls.TLSSocket
。
DEP0043: tls.SecurePair
[历史]
版本 | 变更 |
---|---|
v8.0.0 | 运行时弃用。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 仅文档弃用。 |
v0.11.15 | 弃用撤销。 |
v0.11.3 | 运行时弃用。 |
类型:仅文档
tls.SecurePair
类已弃用。请改用 tls.TLSSocket
。
DEP0044: util.isArray()
[历史]
版本 | 变更 |
---|---|
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:运行时
util.isArray()
API 已弃用。请改用 Array.isArray()
。
DEP0045: util.isBoolean()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期终结弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期终结
util.isBoolean()
API 已移除。请改用 typeof arg === 'boolean'
。
DEP0046: util.isBuffer()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期终结弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期终结
util.isBuffer()
API 已移除。请改用 Buffer.isBuffer()
。
DEP0047: util.isDate()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 终止生命周期弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:终止生命周期
util.isDate()
API 已移除。请使用 arg instanceof Date
代替。
DEP0048: util.isError()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 终止生命周期弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:终止生命周期
util.isError()
API 已移除。请使用 Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error
代替。
DEP0049: util.isFunction()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 终止生命周期弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:终止生命周期
util.isFunction()
API 已移除。请使用 typeof arg === 'function'
代替。
DEP0050: util.isNull()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期结束
util.isNull()
API 已被移除。请使用 arg === null
代替。
DEP0051: util.isNullOrUndefined()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期结束
util.isNullOrUndefined()
API 已被移除。请使用 arg === null || arg === undefined
代替。
DEP0052: util.isNumber()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期结束
util.isNumber()
API 已被移除。请使用 typeof arg === 'number'
代替。
DEP0053: util.isObject()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期结束
util.isObject()
API 已移除。请使用 arg && typeof arg === 'object'
代替。
DEP0054: util.isPrimitive()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期结束
util.isPrimitive()
API 已移除。请使用 arg === null || (typeof arg !=='object' && typeof arg !== 'function')
代替。
DEP0055: util.isRegExp()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期结束
util.isRegExp()
API 已移除。请使用 arg instanceof RegExp
代替。
DEP0056: util.isString()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期终止弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期终止
util.isString()
API 已移除。请改用 typeof arg === 'string'
。
DEP0057: util.isSymbol()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期终止弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期终止
util.isSymbol()
API 已移除。请改用 typeof arg === 'symbol'
。
DEP0058: util.isUndefined()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期终止弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0, v4.8.6 | 已分配弃用代码。 |
v4.0.0, v3.3.1 | 仅文档弃用。 |
类型:生命周期终止
util.isUndefined()
API 已移除。请改用 arg === undefined
。
DEP0059: util.log()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期终止弃用。 |
v22.0.0 | 运行时弃用。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 仅文档弃用。 |
类型:生命周期终止
util.log()
API 已被移除,因为它是一个未维护的遗留 API,意外地暴露给了用户空间。根据您的具体需求,请考虑以下替代方案:
- 第三方日志库
- 使用
console.log(new Date().toLocaleString(), message)
通过采用其中一种替代方案,您可以从 util.log()
迁移,并选择符合您的应用程序特定需求和复杂性的日志记录策略。
DEP0060: util._extend()
[历史]
版本 | 变更 |
---|---|
v22.0.0 | 运行时弃用。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 仅文档弃用。 |
类型:运行时
util._extend()
API 已弃用,因为它是一个未维护的遗留 API,意外地暴露给了用户空间。请改用 target = Object.assign(target, source)
。
DEP0061: fs.SyncWriteStream
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 终止生命周期。 |
v8.0.0 | 运行时弃用。 |
v7.0.0 | 仅文档弃用。 |
类型:终止生命周期
fs.SyncWriteStream
类从未打算作为公开可访问的 API,并且已被移除。没有可用的替代 API。请使用用户态替代方案。
DEP0062: node --debug
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 终止生命周期。 |
v8.0.0 | 运行时弃用。 |
类型:终止生命周期
--debug
激活了旧版的 V8 调试器接口,该接口从 V8 5.8 开始已被移除。它被 Inspector 替代,后者通过 --inspect
激活。
DEP0063: ServerResponse.prototype.writeHeader()
[历史]
版本 | 变更 |
---|---|
v8.0.0 | 仅文档弃用。 |
类型:仅文档
node:http
模块的 ServerResponse.prototype.writeHeader()
API 已弃用。请改用 ServerResponse.prototype.writeHead()
。
ServerResponse.prototype.writeHeader()
方法从未作为官方支持的 API 进行过文档记录。
DEP0064: tls.createSecurePair()
[历史]
版本 | 变更 |
---|---|
v8.0.0 | 运行时弃用。 |
v6.12.0 | 已分配弃用代码。 |
v6.0.0 | 仅文档弃用。 |
v0.11.15 | 撤销弃用。 |
v0.11.3 | 运行时弃用。 |
类型:运行时
tls.createSecurePair()
API 在 Node.js 0.11.3 的文档中已弃用。用户应该改用 tls.Socket
。
DEP0065: repl.REPL_MODE_MAGIC
和 NODE_REPL_MODE=magic
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
v8.0.0 | 仅文档弃用。 |
类型:生命周期结束
node:repl
模块的 REPL_MODE_MAGIC
常量(用于 replMode
选项)已被移除。自 Node.js 6.0.0(导入 V8 5.0 时)以来,其行为与 REPL_MODE_SLOPPY
的行为在功能上相同。请改用 REPL_MODE_SLOPPY
。
NODE_REPL_MODE
环境变量用于设置交互式 node
会话的基础 replMode
。其值 magic
也已移除。请改用 sloppy
。
DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 运行时弃用。 |
v8.0.0 | 仅文档弃用。 |
类型:运行时
node:http
模块的 OutgoingMessage.prototype._headers
和 OutgoingMessage.prototype._headerNames
属性已弃用。请使用公共方法(例如 OutgoingMessage.prototype.getHeader()
、OutgoingMessage.prototype.getHeaders()
、OutgoingMessage.prototype.getHeaderNames()
、OutgoingMessage.prototype.getRawHeaderNames()
、OutgoingMessage.prototype.hasHeader()
、OutgoingMessage.prototype.removeHeader()
、OutgoingMessage.prototype.setHeader()
)来处理输出报头。
OutgoingMessage.prototype._headers
和 OutgoingMessage.prototype._headerNames
属性从未被记录为官方支持的属性。
DEP0067: OutgoingMessage.prototype._renderHeaders
[历史]
版本 | 变更 |
---|---|
v8.0.0 | 仅文档弃用。 |
类型:仅文档
node:http
模块的 OutgoingMessage.prototype._renderHeaders()
API 已弃用。
OutgoingMessage.prototype._renderHeaders
属性从未被记录为官方支持的 API。
DEP0068: node debug
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 已移除旧版 node debug 命令。 |
v8.0.0 | 运行时弃用。 |
类型:生命周期结束
node debug
指的是旧版的 CLI 调试器,它已被基于 V8-inspector 的 CLI 调试器(可通过 node inspect
使用)取代。
DEP0069: vm.runInDebugContext(string)
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
v9.0.0 | 运行时弃用。 |
v8.0.0 | 仅文档弃用。 |
类型:生命周期结束
V8 中已移除 DebugContext,Node.js 10+ 版本中不可用。
DebugContext 是一个实验性 API。
DEP0070: async_hooks.currentId()
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 生命周期结束。 |
v8.2.0 | 运行时弃用。 |
类型:生命周期结束
为提高清晰度,async_hooks.currentId()
已重命名为 async_hooks.executionAsyncId()
。
此更改是在 async_hooks
还是实验性 API 时进行的。
DEP0071: async_hooks.triggerId()
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 生命周期结束。 |
v8.2.0 | 运行时弃用。 |
类型:生命周期结束
async_hooks.triggerId()
已重命名为 async_hooks.triggerAsyncId()
以提高清晰度。
此更改是在 async_hooks
处于实验性 API 期间进行的。
DEP0072: async_hooks.AsyncResource.triggerId()
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 生命周期结束。 |
v8.2.0 | 运行时弃用。 |
类型:生命周期结束
async_hooks.AsyncResource.triggerId()
已重命名为 async_hooks.AsyncResource.triggerAsyncId()
以提高清晰度。
此更改是在 async_hooks
处于实验性 API 期间进行的。
DEP0073: net.Server
的几个内部属性
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
v9.0.0 | 运行时弃用。 |
类型:生命周期结束
访问 net.Server
实例的几个内部、未记录的属性(名称不当)已被弃用。
由于原始 API 未记录且通常对非内部代码无用,因此未提供替代 API。
DEP0074: REPLServer.bufferedCommand
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 终止生命周期。 |
v9.0.0 | 运行时弃用。 |
类型:终止生命周期
REPLServer.bufferedCommand
属性已被弃用,建议使用 REPLServer.clearBufferedCommand()
。
DEP0075: REPLServer.parseREPLKeyword()
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 终止生命周期。 |
v9.0.0 | 运行时弃用。 |
类型:终止生命周期
REPLServer.parseREPLKeyword()
已从用户空间可见性中移除。
DEP0076: tls.parseCertString()
[历史]
版本 | 变更 |
---|---|
v18.0.0 | 终止生命周期。 |
v9.0.0 | 运行时弃用。 |
v8.6.0 | 仅文档弃用。 |
类型:终止生命周期
tls.parseCertString()
是一个简单的解析辅助函数,其公开是一个错误。虽然它应该解析证书主题和颁发者字符串,但它从未正确处理多值相对区别名称。
本文档的早期版本建议使用 querystring.parse()
作为 tls.parseCertString()
的替代方案。但是,querystring.parse()
也无法正确处理所有证书主题,因此不应使用。
DEP0077: Module._debug()
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 运行时弃用。 |
类型:运行时
Module._debug()
已弃用。
Module._debug()
函数从未作为官方支持的 API 进行过文档记录。
DEP0078: REPLServer.turnOffEditorMode()
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 终止生命周期。 |
v9.0.0 | 运行时弃用。 |
类型:终止生命周期
REPLServer.turnOffEditorMode()
已从用户态可见性中移除。
DEP0079: 通过 .inspect()
在对象上使用自定义检查函数
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 终止生命周期。 |
v10.0.0 | 运行时弃用。 |
v8.7.0 | 仅文档弃用。 |
类型:终止生命周期
使用对象上名为 inspect
的属性来指定 util.inspect()
的自定义检查函数已弃用。请改用 util.inspect.custom
。为了与 6.4.0 之前的 Node.js 版本向后兼容,两者都可以指定。
DEP0080: path._makeLong()
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 仅文档弃用。 |
类型:仅文档
内部的 path._makeLong()
并非旨在供公共使用。但是,用户模块发现它很有用。此内部 API 已弃用,并替换为相同的公共 path.toNamespacedPath()
方法。
DEP0081: 使用文件描述符的 fs.truncate()
[历史]
版本 | 变更 |
---|---|
v9.0.0 | 运行时弃用。 |
类型:运行时
使用文件描述符的 fs.truncate()
fs.truncateSync()
已弃用。请使用 fs.ftruncate()
或 fs.ftruncateSync()
来处理文件描述符。
DEP0082: REPLServer.prototype.memory()
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 生命周期结束。 |
v9.0.0 | 运行时弃用。 |
类型:生命周期结束
REPLServer.prototype.memory()
仅对于 REPLServer
本身的内部机制必要。请勿使用此函数。
DEP0083:通过将 ecdhCurve
设置为 false
来禁用 ECDH
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 终止生命周期。 |
v9.2.0 | 运行时弃用。 |
类型:终止生命周期。
tls.createSecureContext()
和 tls.TLSSocket
的 ecdhCurve
选项可以设置为 false
以完全禁用服务器上的 ECDH。此模式在准备迁移到 OpenSSL 1.1.0 并与客户端保持一致的过程中已被弃用,现在已不受支持。请改用 ciphers
参数。
DEP0084:需要捆绑的内部依赖项
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 此功能已被移除。 |
v10.0.0 | 运行时弃用。 |
类型:终止生命周期
从 Node.js 4.4.0 和 5.2.0 版本开始,一些仅供内部使用的模块通过 require()
错误地暴露给了用户代码。这些模块是:
v8/tools/codemap
v8/tools/consarray
v8/tools/csvparser
v8/tools/logreader
v8/tools/profile_view
v8/tools/profile
v8/tools/SourceMap
v8/tools/splaytree
v8/tools/tickprocessor-driver
v8/tools/tickprocessor
node-inspect/lib/_inspect
(从 7.6.0 开始)node-inspect/lib/internal/inspect_client
(从 7.6.0 开始)node-inspect/lib/internal/inspect_repl
(从 7.6.0 开始)
v8/*
模块没有任何导出,如果没有按照特定顺序导入,实际上会抛出错误。因此,几乎没有通过 require()
导入它们的合法用例。
另一方面,node-inspect
可以通过包管理器在本地安装,因为它已在 npm 注册表中以相同名称发布。如果这样做,则无需修改源代码。
DEP0085:AsyncHooks 敏感 API
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
v9.4.0, v8.10.0 | 运行时弃用。 |
类型:生命周期结束
AsyncHooks 敏感 API 从未被记录,并且存在各种小问题。请改用 AsyncResource
API。参见 https://github.com/nodejs/node/issues/15572。
DEP0086:移除 runInAsyncIdScope
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
v9.4.0, v8.10.0 | 运行时弃用。 |
类型:生命周期结束
runInAsyncIdScope
不会发出 'before'
或 'after'
事件,因此可能导致许多问题。参见 https://github.com/nodejs/node/issues/14328。
DEP0089:require('node:assert')
[历史]
版本 | 变更 |
---|---|
v12.8.0 | 弃用撤销。 |
v9.9.0, v8.13.0 | 仅文档弃用。 |
类型:弃用撤销
直接导入 assert 不推荐,因为公开的函数使用宽松的相等性检查。弃用被撤销,因为不建议使用 node:assert
模块,并且弃用造成了开发者困惑。
DEP0090:无效的 GCM 认证标签长度
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 生命周期结束。 |
v10.0.0 | 运行时弃用。 |
类型:生命周期结束
Node.js 过去支持 OpenSSL 在调用 decipher.setAuthTag()
时接受的所有 GCM 认证标签长度。从 Node.js v11.0.0 开始,只允许 128、120、112、104、96、64 和 32 位的认证标签长度。根据 NIST SP 800-38D,其他长度的认证标签无效。
DEP0091:crypto.DEFAULT_ENCODING
[历史]
版本 | 变更 |
---|---|
v20.0.0 | 生命周期结束。 |
v10.0.0 | 运行时弃用。 |
类型:生命周期结束
crypto.DEFAULT_ENCODING
属性仅为了与 0.9.3 之前的 Node.js 版本兼容而存在,现已移除。
DEP0092:绑定到 module.exports
的顶级 this
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 仅文档弃用。 |
类型:仅文档弃用
将属性赋值给顶级 this
作为 module.exports
的替代方案已被弃用。开发者应该使用 exports
或 module.exports
代替。
DEP0093: crypto.fips
已弃用并被替换
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 运行时弃用。 |
v10.0.0 | 仅文档弃用。 |
类型:运行时
crypto.fips
属性已弃用。请改用 crypto.setFips()
和 crypto.getFips()
。
DEP0094: 使用超过一个参数的 assert.fail()
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 运行时弃用。 |
类型:运行时
使用超过一个参数的 assert.fail()
已弃用。请仅使用一个参数的 assert.fail()
或使用其他 node:assert
模块方法。
DEP0095: timers.enroll()
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 运行时弃用。 |
类型:运行时
timers.enroll()
已弃用。请改用公开文档中的 setTimeout()
或 setInterval()
。
DEP0096: timers.unenroll()
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 运行时弃用。 |
类型:运行时
timers.unenroll()
已弃用。请改用公开文档中的 clearTimeout()
或 clearInterval()
。
DEP0097: 带 domain
属性的 MakeCallback
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 运行时弃用。 |
类型:运行时
MakeCallback
的用户添加 domain
属性来传递上下文,应该开始使用 MakeCallback
或 CallbackScope
的 async_context
变体,或高级 AsyncResource
类。
DEP0098: AsyncHooks 嵌入器 AsyncResource.emitBefore
和 AsyncResource.emitAfter
API
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v10.0.0, v9.6.0, v8.12.0 | 运行时弃用。 |
类型:生命周期结束
AsyncHooks 提供的嵌入式 API 公开了 .emitBefore()
和 .emitAfter()
方法,这些方法很容易被错误使用,从而导致不可恢复的错误。
请改用 asyncResource.runInAsyncScope()
API,它提供了一个更安全、更方便的替代方案。参见 https://github.com/nodejs/node/pull/18513。
DEP0099:异步上下文无关的 node::MakeCallback
C++ API
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 编译时弃用。 |
类型:编译时
原生插件可用的某些版本的 node::MakeCallback
API 已弃用。请使用接受 async_context
参数的 API 版本。
DEP0100:process.assert()
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束。 |
v10.0.0 | 运行时弃用。 |
v0.3.7 | 仅文档弃用。 |
类型:生命周期结束
process.assert()
已弃用。请改用 assert
模块。
此功能从未在文档中记录。
DEP0101:--with-lttng
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
类型:生命周期结束
已移除 --with-lttng
编译时选项。
DEP0102:在 Buffer#(read|write)
操作中使用 noAssert
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 生命周期结束。 |
类型:生命周期结束
使用 noAssert
参数不再有任何功能。无论 noAssert
的值如何,都会验证所有输入。跳过验证可能会导致难以发现的错误和崩溃。
DEP0103: process.binding('util').is[...]
类型检查
[历史]
版本 | 变更 |
---|---|
v10.9.0 | 已被 DEP0111 取代。 |
v10.0.0 | 仅文档弃用。 |
类型:仅文档弃用(支持 --pending-deprecation
)
通常应避免使用 process.binding()
。 特别是类型检查方法可以使用 util.types
来替换。
此弃用已被 process.binding()
API 的弃用 (DEP0111) 取代。
DEP0104: process.env
字符串强制转换
[历史]
版本 | 变更 |
---|---|
v10.0.0 | 仅文档弃用。 |
类型:仅文档弃用(支持 --pending-deprecation
)
将非字符串属性赋值给 process.env
时,赋值的值会隐式转换为字符串。如果赋值的值不是字符串、布尔值或数字,则此行为已弃用。将来,此类赋值可能会导致抛出错误。请在将属性赋值给 process.env
之前将其转换为字符串。
DEP0105: decipher.finaltol
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 生命周期结束。 |
v10.0.0 | 运行时弃用。 |
类型:生命周期结束
decipher.finaltol()
从未被文档记录,它是 decipher.final()
的别名。此 API 已被移除,建议使用 decipher.final()
代替。
DEP0106: crypto.createCipher
和 crypto.createDecipher
[历史]
版本 | 变更 |
---|---|
v22.0.0 | 生命周期结束。 |
v11.0.0 | 运行时弃用。 |
v10.0.0 | 仅文档弃用。 |
类型:生命周期结束
crypto.createCipher()
和 crypto.createDecipher()
已被移除,因为它们使用弱密钥派生函数(无盐的 MD5)和静态初始化向量。建议使用 crypto.pbkdf2()
或 crypto.scrypt()
结合随机盐来派生密钥,并使用 crypto.createCipheriv()
和 crypto.createDecipheriv()
分别获取 Cipher
和 Decipher
对象。
DEP0107: tls.convertNPNProtocols()
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 生命周期结束。 |
v10.0.0 | 运行时弃用。 |
类型:生命周期结束
这是一个未公开的辅助函数,并非旨在用于 Node.js 核心之外,并且由于删除了 NPN(下一协议协商)支持而被弃用。
DEP0108: zlib.bytesRead
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束。 |
v11.0.0 | 运行时弃用。 |
v10.0.0 | 仅文档弃用。 |
类型:生命周期结束
zlib.bytesWritten
的已弃用别名。最初选择此名称是因为它也同样可以解释为引擎读取的字节数,但这与 Node.js 中公开这些名称下值的其它流不一致。
DEP0109: http
、https
和 tls
对无效 URL 的支持
[历史]
版本 | 变更 |
---|---|
v16.0.0 | 生命周期结束。 |
v11.0.0 | 运行时弃用。 |
类型:生命周期结束
之前支持的一些(但严格无效的)URL 通过 http.request()
、http.get()
、https.request()
、https.get()
和 tls.checkServerIdentity()
API 被接受,因为这些被旧版 url.parse()
API 接受。上述 API 现在使用 WHATWG URL 解析器,该解析器要求严格有效的 URL。传递无效 URL 已被弃用,并且将来会删除此支持。
DEP0110: vm.Script
缓存数据
[历史]
版本 | 变更 |
---|---|
v10.6.0 | 仅文档弃用。 |
类型:仅文档
produceCachedData
选项已弃用。请改用 script.createCachedData()
。
DEP0111: process.binding()
[历史]
版本 | 变更 |
---|---|
v11.12.0 | 添加了对 --pending-deprecation 的支持。 |
v10.9.0 | 仅文档弃用。 |
类型:仅文档(支持 --pending-deprecation
)
process.binding()
仅供 Node.js 内部代码使用。
虽然 process.binding()
通常尚未达到生命周期结束状态,但在启用 权限模型 时,它不可用。
DEP0112: dgram
私有 API
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 运行时弃用。 |
类型:运行时
node:dgram
模块以前包含一些从未打算在 Node.js 核心之外访问的 API:Socket.prototype._handle
、Socket.prototype._receiving
、Socket.prototype._bindState
、Socket.prototype._queue
、Socket.prototype._reuseAddr
、Socket.prototype._healthCheck()
、Socket.prototype._stopReceiving()
和 dgram._createSocketHandle()
。
DEP0113: Cipher.setAuthTag()
,Decipher.getAuthTag()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v11.0.0 | 运行时弃用。 |
类型:生命周期结束
Cipher.setAuthTag()
和 Decipher.getAuthTag()
已不再可用。它们从未被记录在案,调用时会抛出错误。
DEP0114: crypto._toBuf()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v11.0.0 | 运行时弃用。 |
类型:生命周期结束
crypto._toBuf()
函数并非设计用于 Node.js 核心模块之外的模块,已被移除。
DEP0115: crypto.prng()
,crypto.pseudoRandomBytes()
,crypto.rng()
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 添加仅限文档的弃用声明,支持 --pending-deprecation 。 |
类型:仅限文档 (支持 --pending-deprecation
)
在最近版本的 Node.js 中,crypto.randomBytes()
和 crypto.pseudoRandomBytes()
之间没有区别。后者与未记录的别名 crypto.prng()
和 crypto.rng()
一起被弃用,推荐使用 crypto.randomBytes()
,并可能在将来的版本中移除。
DEP0116:旧版 URL API
[历史]
版本 | 变更 |
---|---|
v19.0.0, v18.13.0 | url.parse() 在 DEP0169 中再次被弃用。 |
v15.13.0, v14.17.0 | 弃用撤销。状态更改为“旧版”。 |
v11.0.0 | 仅文档弃用。 |
类型:弃用撤销
旧版 URL API 已弃用。这包括 url.format()
,url.parse()
,url.resolve()
和 旧版 urlObject
。请改用 WHATWG URL API。
DEP0117:原生加密句柄
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v11.0.0 | 运行时弃用。 |
类型:生命周期结束
早期版本的 Node.js 通过 Cipher
、Decipher
、DiffieHellman
、DiffieHellmanGroup
、ECDH
、Hash
、Hmac
、Sign
和 Verify
类的 _handle
属性公开了对内部原生对象的句柄。_handle
属性已被移除,因为不正确使用原生对象可能导致应用程序崩溃。
DEP0118:dns.lookup()
支持虚假主机名
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 运行时弃用。 |
类型:运行时
之前的 Node.js 版本由于向后兼容性,支持使用虚假主机名(例如 dns.lookup(false)
)调用 dns.lookup()
。此行为未记录,且据信在实际应用中未使用。它将在未来的 Node.js 版本中成为错误。
DEP0119:process.binding('uv').errname()
私有 API
[历史]
版本 | 变更 |
---|---|
v11.0.0 | 仅文档弃用。 |
类型:仅文档(支持 --pending-deprecation
)
process.binding('uv').errname()
已弃用。请改用 util.getSystemErrorName()
。
DEP0120:Windows 性能计数器支持
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 生命周期结束。 |
v11.0.0 | 运行时弃用。 |
类型:生命周期结束
Windows 性能计数器支持已从 Node.js 中移除。未记录的 COUNTER_NET_SERVER_CONNECTION()
、COUNTER_NET_SERVER_CONNECTION_CLOSE()
、COUNTER_HTTP_SERVER_REQUEST()
、COUNTER_HTTP_SERVER_RESPONSE()
、COUNTER_HTTP_CLIENT_REQUEST()
和 COUNTER_HTTP_CLIENT_RESPONSE()
函数已被弃用。
DEP0121: net._setSimultaneousAccepts()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 运行时弃用。 |
类型:运行时
未公开的 net._setSimultaneousAccepts()
函数最初旨在用于在 Windows 上使用 node:child_process
和 node:cluster
模块时的调试和性能调整。此函数通常无用,并将被移除。请参阅此处讨论:https://github.com/nodejs/node/issues/18391
DEP0122: tls
Server.prototype.setOptions()
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 运行时弃用。 |
类型:运行时
请改用 Server.prototype.setSecureContext()
。
DEP0123: 将 TLS ServerName 设置为 IP 地址
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 运行时弃用。 |
类型:运行时
RFC 6066 不允许将 TLS ServerName 设置为 IP 地址。这将在未来版本中被忽略。
DEP0124:使用 REPLServer.rli
[历史]
版本 | 变更 |
---|---|
v15.0.0 | 生命周期结束。 |
v12.0.0 | 运行时弃用。 |
类型:生命周期结束
此属性是对实例本身的引用。
DEP0125:require('node:_stream_wrap')
[历史]
版本 | 变更 |
---|---|
v12.0.0 | 运行时弃用。 |
类型:运行时
node:_stream_wrap
模块已弃用。
DEP0126:timers.active()
[历史]
版本 | 变更 |
---|---|
v11.14.0 | 运行时弃用。 |
类型:运行时
之前未记录的 timers.active()
已弃用。请改用公开记录的 timeout.refresh()
。如果需要重新引用超时,则可以使用 timeout.ref()
,自 Node.js 10 起不会对性能产生影响。
DEP0127:timers._unrefActive()
[历史]
版本 | 变更 |
---|---|
v11.14.0 | 运行时弃用。 |
类型:运行时
之前未记录的和“私有”的 timers._unrefActive()
已弃用。请改用公开记录的 timeout.refresh()
。如果需要取消引用超时,则可以使用 timeout.unref()
,自 Node.js 10 起不会对性能产生影响。
DEP0128:main
入口无效且包含 index.js
文件的模块
[历史]
版本 | 变更 |
---|---|
v16.0.0 | 运行时弃用。 |
v12.0.0 | 仅文档变更。 |
类型:运行时
具有无效 main
入口(例如,./does-not-exist.js
)并且在顶级目录中也包含 index.js
文件的模块将解析 index.js
文件。此行为已弃用,将在未来的 Node.js 版本中抛出错误。
DEP0129:ChildProcess._channel
[历史]
版本 | 变更 |
---|---|
v13.0.0 | 运行时弃用。 |
v11.14.0 | 仅文档变更。 |
类型:运行时
spawn()
及类似函数返回的子进程对象的 _channel
属性并非供公开使用。请改用 ChildProcess.channel
。
DEP0130:Module.createRequireFromPath()
[历史]
版本 | 变更 |
---|---|
v16.0.0 | 生命周期结束。 |
v13.0.0 | 运行时弃用。 |
v12.2.0 | 仅文档变更。 |
类型:生命周期结束
DEP0131:旧版 HTTP 解析器
[历史]
版本 | 变更 |
---|---|
v13.0.0 | 此功能已移除。 |
v12.22.0 | 运行时弃用。 |
v12.3.0 | 仅文档说明。 |
类型:生命周期结束
在 12.0.0 之前的 Node.js 版本中默认使用的旧版 HTTP 解析器已弃用,并在 v13.0.0 中移除。在 v13.0.0 之前,可以使用 --http-parser=legacy
命令行标志恢复使用旧版解析器。
DEP0132:带有回调函数的 worker.terminate()
[历史]
版本 | 变更 |
---|---|
v12.5.0 | 运行时弃用。 |
类型:运行时
向 worker.terminate()
传递回调函数已弃用。请改用返回的 Promise
,或监听 worker 的 'exit'
事件。
DEP0133:http
connection
[历史]
版本 | 变更 |
---|---|
v12.12.0 | 仅文档说明弃用。 |
类型:仅文档说明
建议使用 response.socket
代替 response.connection
,以及使用 request.socket
代替 request.connection
。
DEP0134: process._tickCallback
[历史]
版本 | 变更 |
---|---|
v12.12.0 | 仅文档弃用。 |
类型:仅文档弃用(支持 --pending-deprecation
)
process._tickCallback
属性从未被记录为官方支持的 API。
DEP0135: WriteStream.open()
和 ReadStream.open()
为内部 API
[历史]
版本 | 变更 |
---|---|
v13.0.0 | 运行时弃用。 |
类型:运行时
WriteStream.open()
和 ReadStream.open()
是未公开的内部 API,在用户空间中使用没有意义。文件流应始终通过其对应的工厂方法 fs.createWriteStream()
和 fs.createReadStream()
) 打开,或者通过在选项中传递文件描述符打开。
DEP0136: http
finished
[历史]
版本 | 变更 |
---|---|
v13.4.0, v12.16.0 | 仅文档弃用。 |
类型:仅文档弃用
response.finished
指示是否已调用 response.end()
,而不是指示是否已发出 'finish'
事件以及底层数据是否已刷新。
为了避免歧义,请相应地使用 response.writableFinished
或 response.writableEnded
代替。
为了保持现有行为,response.finished
应替换为 response.writableEnded
。
DEP0137:在垃圾回收时关闭 fs.FileHandle
[历史]
版本 | 变更 |
---|---|
v14.0.0 | 运行时弃用。 |
类型:运行时
允许在垃圾回收时关闭 fs.FileHandle
对象已被弃用。将来,这样做可能会导致抛出错误并终止进程。
请确保在不再需要 fs.FileHandle
时,使用 FileHandle.prototype.close()
显式关闭所有 fs.FileHandle
对象:
const fsPromises = require('node:fs').promises
async function openAndClose() {
let filehandle
try {
filehandle = await fsPromises.open('thefile.txt', 'r')
} finally {
if (filehandle !== undefined) await filehandle.close()
}
}
DEP0138:process.mainModule
[历史]
版本 | 变更 |
---|---|
v14.0.0 | 仅文档弃用。 |
类型:仅文档
process.mainModule
仅是 CommonJS 特性,而 process
全局对象与非 CommonJS 环境共享。在 ECMAScript 模块中不支持其使用。
它已被 require.main
弃用,因为它具有相同的用途并且仅在 CommonJS 环境中可用。
DEP0139: 无参数调用 process.umask()
[历史]
版本 | 变更 |
---|---|
v14.0.0, v12.19.0 | 仅文档弃用。 |
类型:仅文档弃用
无参数调用 process.umask()
会导致进程范围的 umask 被写入两次。这会在线程之间引入竞争条件,并可能造成安全漏洞。没有安全的、跨平台的替代 API。
DEP0140: 使用 request.destroy()
代替 request.abort()
[历史]
版本 | 变更 |
---|---|
v14.1.0, v13.14.0 | 仅文档弃用。 |
类型:仅文档弃用
使用 request.destroy()
代替 request.abort()
。
DEP0141: repl.inputStream
和 repl.outputStream
[历史]
版本 | 变更 |
---|---|
v14.3.0 | 仅文档弃用(支持 [--pending-deprecation ][])。 |
类型:仅文档弃用(支持 --pending-deprecation
)
node:repl
模块重复导出了输入和输出流。使用 .input
代替 .inputStream
,使用 .output
代替 .outputStream
。
DEP0142: repl._builtinLibs
[历史]
版本 | 变更 |
---|---|
v14.3.0 | 仅文档变更(支持 [--pending-deprecation ][])。 |
类型:仅文档变更
node:repl
模块导出一个 _builtinLibs
属性,其中包含一个内置模块数组。它之前是不完整的,现在最好依赖于 require('node:module').builtinModules
。
DEP0143: Transform._transformState
[历史]
版本 | 变更 |
---|---|
v14.5.0 | 运行时弃用。 |
类型:运行时 Transform._transformState
将在未来版本中移除,因为实现的简化不再需要它。
DEP0144: module.parent
[历史]
版本 | 变更 |
---|---|
v14.6.0, v12.19.0 | 仅文档弃用。 |
类型:仅文档变更(支持 --pending-deprecation
)
一个 CommonJS 模块可以使用 module.parent
访问第一个 require 它的模块。此功能已弃用,因为它在存在 ECMAScript 模块的情况下无法一致地工作,并且因为它对 CommonJS 模块图的表示不准确。
一些模块使用它来检查它们是否是当前进程的入口点。建议改为比较 require.main
和 module
:
if (require.main === module) {
// 仅当当前文件是入口点时才会运行的代码段。
}
当查找已经 require 当前模块的 CommonJS 模块时,可以使用 require.cache
和 module.children
:
const moduleParents = Object.values(require.cache).filter(m => m.children.includes(module))
DEP0145: socket.bufferSize
[历史]
版本 | 变更 |
---|---|
v14.6.0 | 仅文档弃用。 |
类型:仅文档
socket.bufferSize
只是 writable.writableLength
的别名。
DEP0146: new crypto.Certificate()
[历史]
版本 | 变更 |
---|---|
v14.9.0 | 仅文档弃用。 |
类型:仅文档
crypto.Certificate()
构造函数 已弃用。请改用 crypto.Certificate()
的静态方法。
DEP0147: fs.rmdir(path, { recursive: true })
{#dep0147-fsrmdirpath-{-recursive-true-}}
[历史]
版本 | 变更 |
---|---|
v16.0.0 | 运行时弃用。 |
v15.0.0 | 宽松行为的运行时弃用。 |
v14.14.0 | 仅文档弃用。 |
类型:运行时
在未来的 Node.js 版本中,recursive
选项将被 fs.rmdir
、fs.rmdirSync
和 fs.promises.rmdir
忽略。
请改用 fs.rm(path, { recursive: true, force: true })
、fs.rmSync(path, { recursive: true, force: true })
或 fs.promises.rm(path, { recursive: true, force: true })
。
DEP0148: "exports"
中的文件夹映射(尾部 "/"
)
[历史]
版本 | 变更 |
---|---|
v17.0.0 | 生命周期结束。 |
v16.0.0 | 运行时弃用。 |
v15.1.0 | 自引用导入的运行时弃用。 |
v14.13.0 | 仅文档弃用。 |
类型:运行时
在 子路径导出 或 子路径导入 字段中使用尾部 "/"
来定义子路径文件夹映射已弃用。请改用 子路径模式。
DEP0149: http.IncomingMessage#connection
[历史]
版本 | 变更 |
---|---|
v16.0.0 | 仅文档弃用。 |
类型:仅文档。
建议使用 message.socket
而不是 message.connection
。
DEP0150: 更改 process.config
的值
[历史]
版本 | 变更 |
---|---|
v19.0.0 | 生命周期结束。 |
v16.0.0 | 运行时弃用。 |
类型:生命周期结束
process.config
属性提供对 Node.js 编译时设置的访问。但是,该属性是可变的,因此容易受到篡改。更改其值的功能将在 Node.js 的未来版本中移除。
DEP0151:主索引查找和扩展搜索
[历史]
版本 | 变更 |
---|---|
v16.0.0 | 运行时弃用。 |
v15.8.0, v14.18.0 | 仅文档弃用,支持 --pending-deprecation 。 |
类型:运行时
以前,index.js
和扩展搜索查找会应用于 import 'pkg'
主入口点解析,即使解析 ES 模块也是如此。
通过此弃用,所有 ES 模块主入口点解析都需要显式指定带有精确文件扩展名的 "exports"
或 "main"
入口。
DEP0152:扩展 PerformanceEntry 属性
[历史]
版本 | 变更 |
---|---|
v16.0.0 | 运行时弃用。 |
类型:运行时
'gc'
、'http2'
和 'http'
<PerformanceEntry> 对象类型具有分配给它们的附加属性,这些属性提供附加信息。这些属性现在可在 PerformanceEntry
对象的标准 detail
属性中使用。现有的访问器已被弃用,不应再使用。
DEP0153: dns.lookup
和 dnsPromises.lookup
选项类型强制转换
[历史]
版本 | 变更 |
---|---|
v18.0.0 | 生命周期结束。 |
v17.0.0 | 运行时弃用。 |
v16.8.0 | 仅文档弃用。 |
类型:生命周期结束
在 dns.lookup()
和 dnsPromises.lookup()
中,使用非 null 非整数值作为 family
选项,非 null 非数值作为 hints
选项,非 null 非布尔值作为 all
选项,或非 null 非布尔值作为 verbatim
选项,将会抛出 ERR_INVALID_ARG_TYPE
错误。
DEP0154: RSA-PSS 生成密钥对选项
[历史]
版本 | 变更 |
---|---|
v20.0.0 | 运行时弃用。 |
v16.10.0 | 仅文档弃用。 |
类型:运行时
'hash'
和 'mgf1Hash'
选项被 'hashAlgorithm'
和 'mgf1HashAlgorithm'
替换。
DEP0155: 模式说明符解析中的尾部斜杠
[历史]
版本 | 变更 |
---|---|
v17.0.0 | 运行时弃用。 |
v16.10.0 | 仅文档弃用,支持 --pending-deprecation 。 |
类型:运行时
对于包 "exports"
和 "imports"
模式解析,以 "/"
结尾的说明符(例如 import 'pkg/x/'
)的重新映射已弃用。
DEP0156: http
中的 .aborted
属性和 'abort'
, 'aborted'
事件
[历史]
版本 | 变更 |
---|---|
v17.0.0, v16.12.0 | 仅文档弃用。 |
类型:仅文档
改为使用 <Stream> API,因为 http.ClientRequest
,http.ServerResponse
和 http.IncomingMessage
都是基于流的。检查 stream.destroyed
而不是 .aborted
属性,并监听 'close'
而不是 'abort'
, 'aborted'
事件。
.aborted
属性和 'abort'
事件仅用于检测 .abort()
调用。要提前关闭请求,请使用 Stream .destroy([error])
,然后检查 .destroyed
属性和 'close'
事件,它们应该具有相同的效果。接收端还应该检查 http.IncomingMessage
上的 readable.readableEnded
值,以确定它是中止还是优雅销毁。
DEP0157:流中对 Thenable 的支持
[历史]
版本 | 变更 |
---|---|
v18.0.0 | 终止生命周期。 |
v17.2.0, v16.14.0 | 仅文档弃用。 |
类型:终止生命周期
Node.js 流的一个未公开特性是支持在实现方法中使用 Thenable。此特性现已弃用,请改用回调,并避免在流实现方法中使用异步函数。
此特性导致用户遇到意外问题,即用户以回调样式实现函数,但使用例如异步方法,这将导致错误,因为混合 Promise 和回调语义是无效的。
const w = new Writable({
async final(callback) {
await someOp()
callback()
},
})
DEP0158:buffer.slice(start, end)
[历史]
版本 | 变更 |
---|---|
v17.5.0, v16.15.0 | 仅文档弃用。 |
类型:仅文档
此方法已弃用,因为它与 Uint8Array.prototype.slice()
不兼容,后者是 Buffer
的超类。
请改用 buffer.subarray
,它执行相同的操作。
DEP0159: ERR_INVALID_CALLBACK
[历史]
版本 | 变更 |
---|---|
v18.0.0 | 生命周期结束。 |
类型:生命周期结束
由于增加了对用于值类型验证的错误的更多混淆,因此删除了此错误代码。
DEP0160: process.on('multipleResolves', handler)
[历史]
版本 | 变更 |
---|---|
v18.0.0 | 运行时弃用。 |
v17.6.0, v16.15.0 | 仅文档弃用。 |
类型:运行时。
此事件已弃用,因为它不适用于 V8 Promise 组合器,这降低了它的实用性。
DEP0161: process._getActiveRequests()
和 process._getActiveHandles()
[历史]
版本 | 变更 |
---|---|
v17.6.0, v16.15.0 | 仅文档弃用。 |
类型:仅文档
process._getActiveHandles()
和 process._getActiveRequests()
函数并非旨在供公众使用,并且可能会在将来的版本中删除。
使用 process.getActiveResourcesInfo()
获取活动资源类型的列表,而不是实际引用。
DEP0162: fs.write()
、fs.writeFileSync()
强制转换为字符串
[历史]
版本 | 变更 |
---|---|
v19.0.0 | 生命周期结束。 |
v18.0.0 | 运行时弃用。 |
v17.8.0, v16.15.0 | 仅文档弃用。 |
类型:生命周期结束
在 fs.write()
、fs.writeFile()
、fs.appendFile()
、fs.writeFileSync()
和 fs.appendFileSync()
中,将具有自身 toString
属性的对象作为第二个参数隐式强制转换为字符串的行为已弃用。请将其转换为原始字符串。
DEP0163: channel.subscribe(onMessage)
、channel.unsubscribe(onMessage)
[历史]
版本 | 变更 |
---|---|
v18.7.0, v16.17.0 | 仅文档弃用。 |
类型:仅文档
这些方法已弃用,因为它们的使用方式可能无法使通道引用保持足够长的时间来接收事件。
请改用 diagnostics_channel.subscribe(name, onMessage)
或 diagnostics_channel.unsubscribe(name, onMessage)
,它们具有相同的功能。
DEP0164: process.exit(code)
,process.exitCode
强制转换为整数
[历史]
版本 | 变更 |
---|---|
v20.0.0 | 生命周期结束。 |
v19.0.0 | 运行时弃用。 |
v18.10.0, v16.18.0 | 仅文档弃用 process.exitCode 整数强制转换。 |
v18.7.0, v16.17.0 | 仅文档弃用 process.exit(code) 整数强制转换。 |
类型:生命周期结束
除了 undefined
、null
、整数和整数字符串(例如 '1'
)以外的值,在 process.exit()
中作为 code
参数的值,以及作为赋值给 process.exitCode
的值,都被弃用。
DEP0165: --trace-atomics-wait
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 生命周期结束。 |
v22.0.0 | 运行时弃用。 |
v18.8.0, v16.18.0 | 仅文档弃用。 |
类型:生命周期结束
--trace-atomics-wait
标志已被移除,因为它使用了 V8 钩子 SetAtomicsWaitCallback
,该钩子将在未来的 V8 版本中移除。
DEP0166:导入和导出目标中的双斜杠
[历史]
版本 | 变更 |
---|---|
v19.0.0 | 运行时弃用。 |
v18.10.0 | 仅文档弃用,支持 --pending-deprecation 。 |
类型:运行时
映射到包含双斜杠(“/”或“\”)的路径的包导入和导出目标已弃用,将在未来版本中因解析验证错误而失败。此弃用也适用于以斜杠开头或结尾的模式匹配。
DEP0167:弱 DiffieHellmanGroup
实例 (modp1
,modp2
,modp5
)
[历史]
版本 | 变更 |
---|---|
v18.10.0, v16.18.0 | 仅文档弃用。 |
类型:仅文档
已知的 MODP 组 modp1
、modp2
和 modp5
已弃用,因为它们无法抵御实际攻击。有关详细信息,请参阅 RFC 8247 第 2.4 节。
这些组可能会在 Node.js 的未来版本中移除。依赖这些组的应用程序应评估使用更强大的 MODP 组。
DEP0168:Node-API 回调中的未处理异常
[历史]
版本 | 变更 |
---|---|
v18.3.0, v16.17.0 | 运行时弃用。 |
类型:运行时
Node-API 回调中未处理异常的隐式抑制现已弃用。
设置标志 --force-node-api-uncaught-exceptions-policy
以强制 Node.js 在 Node-API 回调中未处理异常时发出 'uncaughtException'
事件。
DEP0169:不安全的 url.parse()
[历史]
版本 | 变更 |
---|---|
v19.9.0, v18.17.0 | 添加了对 --pending-deprecation 的支持。 |
v19.0.0, v18.13.0 | 仅文档弃用。 |
类型:仅文档(支持 --pending-deprecation
)
url.parse()
的行为未标准化,并且容易出现具有安全隐患的错误。请改用 WHATWG URL API。不会针对 url.parse()
漏洞发布 CVE。
DEP0170:使用 url.parse()
时无效的端口
[历史]
版本 | 变更 |
---|---|
v20.0.0 | 运行时弃用。 |
v19.2.0, v18.13.0 | 仅文档弃用。 |
类型:运行时
url.parse()
接受端口不是数字的 URL。此行为可能导致主机名欺骗以及意外输入。在未来的 Node.js 版本中,这些 URL 将抛出错误,因为 WHATWG URL API 已经这样做了。
DEP0171:http.IncomingMessage
头部和尾部的设置器
[历史]
版本 | 变更 |
---|---|
v19.3.0, v18.13.0 | 仅文档弃用。 |
类型:仅文档
在未来的 Node.js 版本中,message.headers
,message.headersDistinct
,message.trailers
,和 message.trailersDistinct
将变为只读。
DEP0172:AsyncResource
绑定函数的 asyncResource
属性
[历史]
版本 | 变更 |
---|---|
v20.0.0 | 运行时弃用。 |
类型:运行时
在 Node.js 的未来版本中,当函数绑定到 AsyncResource
时,将不再添加 asyncResource
属性。
DEP0173:assert.CallTracker
类
[历史]
版本 | 变更 |
---|---|
v20.1.0 | 仅文档弃用。 |
类型:仅文档
在 Node.js 的未来版本中,将移除 assert.CallTracker
。考虑使用替代方案,例如 mock
辅助函数。
DEP0174:对返回 Promise
的函数调用 promisify
[历史]
版本 | 变更 |
---|---|
v21.0.0 | 运行时弃用。 |
v20.8.0 | 仅文档弃用。 |
类型:运行时
对返回
DEP0175: util.toUSVString
[历史]
版本 | 变更 |
---|---|
v20.8.0 | 仅文档弃用。 |
类型:仅文档弃用
util.toUSVString()
API 已弃用。请改用 String.prototype.toWellFormed
。
DEP0176: fs.F_OK
, fs.R_OK
, fs.W_OK
, fs.X_OK
[历史]
版本 | 变更 |
---|---|
v20.8.0 | 仅文档弃用。 |
类型:仅文档弃用
node:fs
上直接公开的 F_OK
、R_OK
、W_OK
和 X_OK
获取器已弃用。请改用 fs.constants
或 fs.promises.constants
获取它们。
DEP0177: util.types.isWebAssemblyCompiledModule
[历史]
版本 | 变更 |
---|---|
v21.7.0, v20.12.0 | 生命周期结束。 |
v21.3.0, v20.11.0 | 已分配弃用代码。 |
v14.0.0 | 仅文档弃用。 |
类型:生命周期结束
util.types.isWebAssemblyCompiledModule
API 已移除。请改用 value instanceof WebAssembly.Module
。
DEP0178: dirent.path
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 运行时弃用。 |
v21.5.0, v20.12.0, v18.20.0 | 仅文档弃用。 |
类型:运行时
由于dirent.path
在不同发行版之间缺乏一致性,因此已弃用。请改用dirent.parentPath
。
DEP0179: Hash
构造函数
[历史]
版本 | 变更 |
---|---|
v22.0.0 | 运行时弃用。 |
v21.5.0, v20.12.0 | 仅文档弃用。 |
类型:运行时
由于是内部实现,并非供公共使用,因此直接使用 Hash()
或 new Hash()
调用 Hash
类已被弃用。请使用crypto.createHash()
方法创建 Hash 实例。
DEP0180: fs.Stats
构造函数
[历史]
版本 | 变更 |
---|---|
v22.0.0 | 运行时弃用。 |
v20.13.0 | 仅文档弃用。 |
类型:运行时
由于是内部实现,并非供公共使用,因此直接使用 Stats()
或 new Stats()
调用 fs.Stats
类已被弃用。
DEP0181:Hmac
构造函数
[历史]
版本 | 变更 |
---|---|
v22.0.0 | 运行时弃用。 |
v20.13.0 | 仅文档弃用。 |
类型:运行时
直接使用 Hmac()
或 new Hmac()
调用 Hmac
类已被弃用,因为它属于内部实现,并非供公开使用。请使用 crypto.createHmac()
方法创建 Hmac 实例。
DEP0182:没有显式 authTagLength
的短 GCM 认证标签
[历史]
版本 | 变更 |
---|---|
v23.0.0 | 运行时弃用。 |
v20.13.0 | 仅文档弃用。 |
类型:运行时
打算使用短于默认认证标签长度的认证标签的应用程序必须将 crypto.createDecipheriv()
函数的 authTagLength
选项设置为适当的长度。
对于 GCM 模式的密码,decipher.setAuthTag()
函数接受任何有效长度的认证标签(参见 DEP0090)。此行为已被弃用,以更好地符合 NIST SP 800-38D 中的建议。
DEP0183:基于 OpenSSL 引擎的 API
[历史]
版本 | 变更 |
---|---|
v22.4.0, v20.16.0 | 仅文档弃用。 |
类型:仅文档弃用
OpenSSL 3 已弃用对自定义引擎的支持,建议切换到其新的提供程序模型。https.request()
的 clientCertEngine
选项,tls.createSecureContext()
和 tls.createServer()
;tls.createSecureContext()
的 privateKeyEngine
和 privateKeyIdentifier
;以及 crypto.setEngine()
都依赖于 OpenSSL 的此功能。
DEP0184:不使用 new
实例化 node:zlib
类
[历史]
版本 | 变更 |
---|---|
v22.9.0, v20.18.0 | 仅文档弃用。 |
类型:仅文档弃用
不使用 new
限定符实例化 node:zlib
模块导出的类已弃用。建议改为使用 new
限定符。这适用于所有 Zlib 类,例如 Deflate
、DeflateRaw
、Gunzip
、Inflate
、InflateRaw
、Unzip
和 Zlib
。
DEP0185:不使用 new
实例化 node:repl
类
[历史]
版本 | 变更 |
---|---|
v22.9.0, v20.18.0 | 仅文档弃用。 |
类型:仅文档
不使用 new
限定符实例化 node:repl
模块导出的类已被弃用。建议改用 new
限定符。这适用于所有 REPL 类,包括 REPLServer
和 Recoverable
。
DEP0187:向 fs.existsSync
传递无效的参数类型
[历史]
版本 | 变更 |
---|---|
v23.4.0 | 仅文档。 |
类型:仅文档
传递不受支持的参数类型已被弃用,并且在未来的版本中,将抛出错误,而不是返回 false
。
DEP0188:process.features.ipv6
和 process.features.uv
[历史]
版本 | 变更 |
---|---|
v23.4.0 | 仅文档弃用。 |
类型:仅文档
这些属性始终为 true
。任何基于这些属性的检查都是多余的。
DEP0189: process.features.tls_*
[历史]
版本 | 变更 |
---|---|
v23.4.0 | 仅文档弃用。 |
类型:仅文档
process.features.tls_alpn
,process.features.tls_ocsp
和 process.features.tls_sni
已弃用,因为它们的值保证与 process.features.tls
的值相同。