Node.js API 可能由于以下任何原因而被弃用:
Node.js 使用了三种弃用:
仅文档弃用是仅在 Node.js API 文档中表达的弃用。
这些在运行 Node.js 时不会产生副作用。
某些仅文档的弃用在使用 --pending-deprecation
标志(或其替代的 NODE_PENDING_DEPRECATION=1
环境变量)启动时会触发运行时警告,类似于下面的运行时弃用。
支持该标志的仅文档弃用在弃用的 API 列表中明确标记为此类。
默认情况下,运行时弃用将生成进程警告,该警告将在第一次使用弃用的 API 时打印到 stderr
。
当使用 --throw-deprecation
命令行标志时,运行时弃用将导致抛出错误。
当特性已经或即将从 Node.js 中删除时,使用生命结束的弃用。
有时,API 的弃用可能会被逆转。 在这种情况下,本文件将更新与决定相关的信息。 但是,弃用标识符不会被修改。
http.OutgoingMessage.prototype.flush
#类型: 生命结束
OutgoingMessage.prototype.flush()
已被删除。
改用 OutgoingMessage.prototype.flushHeaders()
。
require('_linklist')
#类型: 生命结束
_linklist
模块已弃用。
请使用用户空间替代方案。
_writableState.buffer
#类型: 生命结束
_writableState.buffer
已被移除。
改用 _writableState.getBuffer()
。
CryptoStream.prototype.readyState
#类型: 生命结束
CryptoStream.prototype.readyState
属性已被删除。
类型: 运行时(支持 --pending-deprecation
)
由于可能导致意外安全问题的 API 可用性问题,Buffer()
函数和 new Buffer()
构造函数已弃用。
作为替代方案,使用以下方法之一构造 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()
,都会产生运行时警告。
child_process
options.customFds
#类型: 生命结束
在 child_process
模块的 spawn()
、fork()
和 exec()
方法中,options.customFds
选项已弃用。
应该使用 options.stdio
选项。
类型: 生命结束
在 Node.js cluster
的早期版本中,名为 suicide
的布尔属性被添加到 Worker
对象中。
此属性的目的是提供 Worker
实例退出的方式和原因的指示。
在 Node.js 6.0.0 中, 旧属性已被弃用,并被新的 worker.exitedAfterDisconnect
属性替换。
旧版的属性名称没有准确描述实际的语义,并且不必要地充满了情感。
require('constants')
#类型: 仅文档
constants
模块已弃用。
当需要访问与特定 Node.js 内置模块相关的常量时,开发者应改为参考相关模块公开的 constants
属性。
例如,require('fs').constants
和 require('os').constants
。
类型: 生命结束
在 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
。
crypto.createCredentials
#类型: 生命结束
crypto.createCredentials()
API 已被移除。
请改用 tls.createSecureContext()
。
crypto.Credentials
#类型: 生命结束
crypto.Credentials
类已被删除。
请改用 tls.SecureContext
。
Domain.dispose
#类型: 生命结束
Domain.dispose()
已被删除。
改为通过在域上设置的错误事件处理程序显式从失败的 I/O 操作中恢复。
类型: 生命结束
在 Node.js 10.0.0 及更高版本中调用没有回调的异步函数会引发 TypeError
。
参阅 https://github.com/nodejs/node/pull/12562。
类型: 生命结束
fs.read()
旧版的 String
接口已弃用。
改用文档中提到的 Buffer
API。
类型: 生命结束
fs.readSync()
旧版的 String
接口已弃用。
改用文档中提到的 Buffer
API。
GLOBAL
/root
#类型: 生命结束
global
属性的 GLOBAL
和 root
别名在 Node.js 6.0.0 中已弃用,此后已被删除。
Intl.v8BreakIterator
#类型: 生命结束
Intl.v8BreakIterator
是非标准的扩展,已被删除。
参阅 Intl.Segmenter
。
类型: 生命结束
未处理的 promise 拒绝已弃用。
默认情况下,未处理的 promise 拒绝会以非零退出代码终止 Node.js 进程。
要改变 Node.js 处理未处理拒绝的方式,则使用 --unhandled-rejections
命令行选项。
类型: 生命结束
在某些情况下,require('.')
可以在包目录之外解析。
此行为已被删除。
Server.connections
#类型: 生命结束
Server.connections
属性在 Node.js v0.9.7 中已弃用并已被删除。
请改用 Server.getConnections()
方法。
Server.listenFD
#类型: 生命结束
Server.listenFD()
方法已被弃用并删除。
请改用 Server.listen({fd: <number>})
。
os.tmpDir()
#类型: 生命结束
os.tmpDir()
API 在 Node.js 7.0.0 中已被弃用,此后已被删除。
请改用 os.tmpdir()
。
os.getNetworkInterfaces()
#类型: 生命结束
os.getNetworkInterfaces()
方法已弃用。
请改用 os.networkInterfaces()
方法。
REPLServer.prototype.convertToContext()
#类型: 生命结束
REPLServer.prototype.convertToContext()
API 已被移除。
require('sys')
#类型: 运行时
sys
模块已弃用。
请改用 util
模块。
util.print()
#类型: 生命结束
util.print()
已被删除。
请改用 console.log()
。
util.puts()
#类型: 生命结束
util.puts()
已被删除。
请改用 console.log()
。
util.debug()
#类型: 生命结束
util.debug()
已被删除。
请改用 console.error()
。
util.error()
#类型: 生命结束
util.error()
已被删除。
请改用 console.error()
。
SlowBuffer
#类型: 仅文档
SlowBuffer
类已弃用。
请改用 Buffer.allocUnsafeSlow(size)
。
ecdh.setPublicKey()
#类型: 仅文档
ecdh.setPublicKey()
方法现在已被弃用,因为它包含在 API 中没有用。
类型: 仅文档
domain
模块已弃用,不应使用。
EventEmitter.listenerCount()
#类型: 仅文档
events.listenerCount(emitter, eventName)
API 已弃用。
请改用 emitter.listenerCount(eventName)
。
fs.exists(path, callback)
#类型: 仅文档
fs.exists(path, callback)
API 已弃用。
请改用 fs.stat()
或 fs.access()
。
fs.lchmod(path, mode, callback)
#类型: 仅文档
fs.lchmod(path, mode, callback)
API 已弃用。
fs.lchmodSync(path, mode)
#类型: 仅文档
fs.lchmodSync(path, mode)
API 已弃用。
fs.lchown(path, uid, gid, callback)
#类型: 弃用已撤销
fs.lchown(path, uid, gid, callback)
API 已被弃用。
由于在 libuv 中添加了必要的支持 API,因此弃用已被撤销。
fs.lchownSync(path, uid, gid)
#类型: 弃用已撤销
fs.lchownSync(path, uid, gid)
API 已被弃用。
由于在 libuv 中添加了必要的支持 API,因此弃用已被撤销。
require.extensions
#类型: 仅文档
require.extensions
属性已弃用。
类型: 仅文档(支持 --pending-deprecation
)
punycode
模块已弃用。
请使用用户空间替代方案。
类型: 生命结束
NODE_REPL_HISTORY_FILE
环境变量已被删除。
请改用 NODE_REPL_HISTORY
。
tls.CryptoStream
#类型: 生命结束
tls.CryptoStream
类已被删除。
请改用 tls.TLSSocket
。
tls.SecurePair
#类型: 仅文档
tls.SecurePair
类已弃用。
请改用 tls.TLSSocket
。
util.isArray()
#类型: 仅文档
util.isArray()
API 已弃用。
请改用 Array.isArray()
。
util.isBoolean()
#类型: 仅文档
util.isBoolean()
API 已弃用。
util.isBuffer()
#类型: 仅文档
util.isBuffer()
API 已弃用。
请改用 Buffer.isBuffer()
。
util.isDate()
#类型: 仅文档
util.isDate()
API 已弃用。
util.isError()
#类型: 仅文档
util.isError()
API 已弃用。
util.isFunction()
#类型: 仅文档
util.isFunction()
API 已弃用。
util.isNull()
#类型: 仅文档
util.isNull()
API 已弃用。
util.isNullOrUndefined()
#类型: 仅文档
util.isNullOrUndefined()
API 已弃用。
util.isNumber()
#类型: 仅文档
util.isNumber()
API 已弃用。
util.isObject()
#类型: 仅文档
util.isObject()
API 已弃用。
util.isPrimitive()
#类型: 仅文档
util.isPrimitive()
API 已弃用。
util.isRegExp()
#类型: 仅文档
util.isRegExp()
API 已弃用。
util.isString()
#类型: 仅文档
util.isString()
API 已弃用。
util.isSymbol()
#类型: 仅文档
util.isSymbol()
API 已弃用。
util.isUndefined()
#类型: 仅文档
util.isUndefined()
API 已弃用。
util.log()
#类型: 仅文档
util.log()
API 已弃用。
util._extend()
#类型: 仅文档
util._extend()
API 已弃用。
fs.SyncWriteStream
#