- assert断言
- async_hooks异步钩子
- buffer缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process子进程
- cluster集群
- CLI命令行
- console控制台
- crypto加密
- debugger调试器
- deprecation弃用
- dgram数据报
- dns域名服务器
- domain域
- Error错误
- events事件触发器
- fs文件系统
- global全局变量
- http超文本传输协议
- http2超文本传输协议2.0
- https安全超文本传输协议
- inspector检查器
- Intl国际化
- module模块
- module/cjsCommonJS模块
- module/esmECMAScript模块
- module/package包模块
- net网络
- os操作系统
- path路径
- perf_hooks性能钩子
- policy安全策略
- process进程
- punycode域名代码
- querystring查询字符串
- readline逐行读取
- repl交互式解释器
- report诊断报告
- stream流
- string_decoder字符串解码器
- timers定时器
- tls安全传输层
- trace_events跟踪事件
- tty终端
- url网址
- util实用工具
- v8引擎
- vm虚拟机
- wasi网络汇编系统接口
- worker_threads工作线程
- zlib压缩
Node.js v12.22.12 文档
- Node.js 12.22.12
-
►
目录
- deprecation 弃用
- 撤销的弃用
- 弃用的 API 列表
- DEP0001:
http.OutgoingMessage.prototype.flush
- DEP0002:
require('_linklist')
- DEP0003:
_writableState.buffer
- DEP0004:
CryptoStream.prototype.readyState
- DEP0005:
Buffer()
constructor - DEP0006:
child_process
options.customFds
- DEP0007: Replace
cluster
worker.suicide
withworker.exitedAfterDisconnect
- DEP0008:
require('constants')
- DEP0009:
crypto.pbkdf2
without digest - DEP0010:
crypto.createCredentials
- DEP0011:
crypto.Credentials
- DEP0012:
Domain.dispose
- DEP0013:
fs
asynchronous function without callback - DEP0014:
fs.read
legacy String interface - DEP0015:
fs.readSync
legacy String interface - DEP0016:
GLOBAL
/root
- DEP0017:
Intl.v8BreakIterator
- DEP0018: Unhandled promise rejections
- DEP0019:
require('.')
resolved outside directory - DEP0020:
Server.connections
- DEP0021:
Server.listenFD
- DEP0022:
os.tmpDir()
- DEP0023:
os.getNetworkInterfaces()
- DEP0024:
REPLServer.prototype.convertToContext()
- DEP0025:
require('sys')
- DEP0026:
util.print()
- DEP0027:
util.puts()
- DEP0028:
util.debug()
- DEP0029:
util.error()
- DEP0030:
SlowBuffer
- DEP0031:
ecdh.setPublicKey()
- DEP0032:
domain
module - DEP0033:
EventEmitter.listenerCount()
- DEP0034:
fs.exists(path, callback)
- DEP0035:
fs.lchmod(path, mode, callback)
- DEP0036:
fs.lchmodSync(path, mode)
- DEP0037:
fs.lchown(path, uid, gid, callback)
- DEP0038:
fs.lchownSync(path, uid, gid)
- DEP0039:
require.extensions
- DEP0040:
punycode
module - DEP0041:
NODE_REPL_HISTORY_FILE
environment variable - DEP0042:
tls.CryptoStream
- DEP0043:
tls.SecurePair
- DEP0044:
util.isArray()
- DEP0045:
util.isBoolean()
- DEP0046:
util.isBuffer()
- DEP0047:
util.isDate()
- DEP0048:
util.isError()
- DEP0049:
util.isFunction()
- DEP0050:
util.isNull()
- DEP0051:
util.isNullOrUndefined()
- DEP0052:
util.isNumber()
- DEP0053
util.isObject()
- DEP0054:
util.isPrimitive()
- DEP0055:
util.isRegExp()
- DEP0056:
util.isString()
- DEP0057:
util.isSymbol()
- DEP0058:
util.isUndefined()
- DEP0059:
util.log()
- DEP0060:
util._extend()
- DEP0061:
fs.SyncWriteStream
- DEP0062:
node --debug
- DEP0063:
ServerResponse.prototype.writeHeader()
- DEP0064:
tls.createSecurePair()
- DEP0065:
repl.REPL_MODE_MAGIC
andNODE_REPL_MODE=magic
- DEP0066:
OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames
- DEP0067:
OutgoingMessage.prototype._renderHeaders
- DEP0068:
node debug
- DEP0069:
vm.runInDebugContext(string)
- DEP0070:
async_hooks.currentId()
- DEP0071:
async_hooks.triggerId()
- DEP0072:
async_hooks.AsyncResource.triggerId()
- DEP0073: Several internal properties of
net.Server
- DEP0074:
REPLServer.bufferedCommand
- DEP0075:
REPLServer.parseREPLKeyword()
- DEP0076:
tls.parseCertString()
- DEP0077:
Module._debug()
- DEP0078:
REPLServer.turnOffEditorMode()
- DEP0079: Custom inspection function on objects via
.inspect()
- DEP0080:
path._makeLong()
- DEP0081:
fs.truncate()
using a file descriptor - DEP0082:
REPLServer.prototype.memory()
- DEP0083: Disabling ECDH by setting
ecdhCurve
tofalse
- DEP0084: requiring bundled internal dependencies
- DEP0085: AsyncHooks sensitive API
- DEP0086: Remove
runInAsyncIdScope
- DEP0089:
require('assert')
- DEP0090: Invalid GCM authentication tag lengths
- DEP0091:
crypto.DEFAULT_ENCODING
- DEP0092: Top-level
this
bound tomodule.exports
- DEP0093:
crypto.fips
is deprecated and replaced. - DEP0094: Using
assert.fail()
with more than one argument. - DEP0095:
timers.enroll()
- DEP0096:
timers.unenroll()
- DEP0097:
MakeCallback
withdomain
property - DEP0098: AsyncHooks embedder
AsyncResource.emitBefore
andAsyncResource.emitAfter
APIs - DEP0099: Async context-unaware
node::MakeCallback
C++ APIs - DEP0100:
process.assert()
- DEP0101:
--with-lttng
- DEP0102: Using
noAssert
inBuffer#(read|write)
operations. - DEP0103:
process.binding('util').is[...]
typechecks - DEP0104:
process.env
string coercion - DEP0105:
decipher.finaltol
- DEP0106:
crypto.createCipher
andcrypto.createDecipher
- DEP0107:
tls.convertNPNProtocols()
- DEP0108:
zlib.bytesRead
- DEP0109:
http
,https
, andtls
support for invalid URLs - DEP0110:
vm.Script
cached data - DEP0111:
process.binding()
- DEP0112:
dgram
private APIs - DEP0113:
Cipher.setAuthTag()
,Decipher.getAuthTag()
- DEP0114:
crypto._toBuf()
- DEP0115:
crypto.prng()
,crypto.pseudoRandomBytes()
,crypto.rng()
- DEP0116: Legacy URL API
- DEP0117: Native crypto handles
- DEP0118:
dns.lookup()
support for a falsy host name - DEP0119:
process.binding('uv').errname()
private API - DEP0120: Windows Performance Counter support
- DEP0121:
net._setSimultaneousAccepts()
- DEP0122:
tls
Server.prototype.setOptions()
- DEP0123: setting the TLS ServerName to an IP address
- DEP0124: using
REPLServer.rli
- DEP0125:
require('_stream_wrap')
- DEP0126:
timers.active()
- DEP0127:
timers._unrefActive()
- DEP0128: modules with an invalid
main
entry and anindex.js
file - DEP0129:
ChildProcess._channel
- DEP0130:
Module.createRequireFromPath()
- DEP0131: Legacy HTTP parser
- DEP0132:
worker.terminate()
with callback - DEP0133:
http
connection
- DEP0134:
process._tickCallback
- DEP0136:
http
finished
- DEP0139:
process.umask()
with no arguments - DEP0144:
module.parent
- DEP0001:
- deprecation 弃用
-
►
索引
- assert 断言
- async_hooks 异步钩子
- buffer 缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process 子进程
- cluster 集群
- CLI 命令行
- console 控制台
- crypto 加密
- debugger 调试器
- deprecation 弃用
- dgram 数据报
- dns 域名服务器
- domain 域
- Error 错误
- events 事件触发器
- fs 文件系统
- global 全局变量
- http 超文本传输协议
- http2 超文本传输协议2.0
- https 安全超文本传输协议
- inspector 检查器
- Intl 国际化
- module 模块
- module/cjs CommonJS模块
- module/esm ECMAScript模块
- module/package 包模块
- net 网络
- os 操作系统
- path 路径
- perf_hooks 性能钩子
- policy 安全策略
- process 进程
- punycode 域名代码
- querystring 查询字符串
- readline 逐行读取
- repl 交互式解释器
- report 诊断报告
- stream 流
- string_decoder 字符串解码器
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
- ► 其他版本
- 文档搜索
目录
- deprecation 弃用
- 撤销的弃用
- 弃用的 API 列表
- DEP0001:
http.OutgoingMessage.prototype.flush
- DEP0002:
require('_linklist')
- DEP0003:
_writableState.buffer
- DEP0004:
CryptoStream.prototype.readyState
- DEP0005: Buffer() 构造函数
- DEP0006:
child_process
options.customFds
- DEP0007: 使用 worker.exitedAfterDisconnect 替换集群的 worker.suicide
- DEP0008:
require('constants')
- DEP0009: 没有摘要的 crypto.pbkdf2
- DEP0010:
crypto.createCredentials
- DEP0011:
crypto.Credentials
- DEP0012:
Domain.dispose
- DEP0013: 没有回调的 fs 异步函数
- DEP0014: fs.read 旧版的字符串接口
- DEP0015: fs.readSync 旧版的字符串接口
- DEP0016:
GLOBAL
/root
- DEP0017:
Intl.v8BreakIterator
- DEP0018: 未处理的 promise 拒绝
- DEP0019: require('.') 在目录外解析
- DEP0020:
Server.connections
- DEP0021:
Server.listenFD
- DEP0022:
os.tmpDir()
- DEP0023:
os.getNetworkInterfaces()
- DEP0024:
REPLServer.prototype.convertToContext()
- DEP0025:
require('sys')
- DEP0026:
util.print()
- DEP0027:
util.puts()
- DEP0028:
util.debug()
- DEP0029:
util.error()
- DEP0030:
SlowBuffer
- DEP0031:
ecdh.setPublicKey()
- DEP0032: domain 模块
- DEP0033:
EventEmitter.listenerCount()
- DEP0034:
fs.exists(path, callback)
- DEP0035:
fs.lchmod(path, mode, callback)
- DEP0036:
fs.lchmodSync(path, mode)
- DEP0037:
fs.lchown(path, uid, gid, callback)
- DEP0038:
fs.lchownSync(path, uid, gid)
- DEP0039:
require.extensions
- DEP0040: punycode 模块
- DEP0041: NODE_REPL_HISTORY_FILE 环境变量
- DEP0042:
tls.CryptoStream
- DEP0043:
tls.SecurePair
- DEP0044:
util.isArray()
- DEP0045:
util.isBoolean()
- DEP0046:
util.isBuffer()
- DEP0047:
util.isDate()
- DEP0048:
util.isError()
- DEP0049:
util.isFunction()
- DEP0050:
util.isNull()
- DEP0051:
util.isNullOrUndefined()
- DEP0052:
util.isNumber()
- DEP0053
util.isObject()
- DEP0054:
util.isPrimitive()
- DEP0055:
util.isRegExp()
- DEP0056:
util.isString()
- DEP0057:
util.isSymbol()
- DEP0058:
util.isUndefined()
- DEP0059:
util.log()
- DEP0060:
util._extend()
- DEP0061:
fs.SyncWriteStream
- DEP0062:
node --debug
- DEP0063:
ServerResponse.prototype.writeHeader()
- DEP0064:
tls.createSecurePair()
- DEP0065: repl.REPL_MODE_MAGIC 和 NODE_REPL_MODE=magic
- DEP0066:
OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames
- DEP0067:
OutgoingMessage.prototype._renderHeaders
- DEP0068:
node debug
- DEP0069:
vm.runInDebugContext(string)
- DEP0070:
async_hooks.currentId()
- DEP0071:
async_hooks.triggerId()
- DEP0072:
async_hooks.AsyncResource.triggerId()
- DEP0073: net.Server 的几个内部属性
- DEP0074:
REPLServer.bufferedCommand
- DEP0075:
REPLServer.parseREPLKeyword()
- DEP0076:
tls.parseCertString()
- DEP0077:
Module._debug()
- DEP0078:
REPLServer.turnOffEditorMode()
- DEP0079: 通过 .inspect() 对对象进行自定义检查函数
- DEP0080:
path._makeLong()
- DEP0081: 使用文件描述符的 fs.truncate()
- DEP0082:
REPLServer.prototype.memory()
- DEP0083: 通过将 ecdhCurve 设置为 false 来禁用 ECDH
- DEP0084: 需要捆绑的内部依赖项
- DEP0085: AsyncHooks 的敏感 API
- DEP0086: 删除 runInAsyncIdScope
- DEP0089:
require('assert')
- DEP0090: 无效的 GCM 身份验证标签长度
- DEP0091:
crypto.DEFAULT_ENCODING
- DEP0092: 顶层 this 绑定到 module.exports
- DEP0093: crypto.fips 已弃用和替换
- DEP0094: 使用带有多个参数的 assert.fail()
- DEP0095:
timers.enroll()
- DEP0096:
timers.unenroll()
- DEP0097: 具有域属性的 MakeCallback
- DEP0098: AsyncHooks 嵌入器 AsyncResource.emitBefore 和 AsyncResource.emitAfter API
- DEP0099: 异步上下文不感知的 node::MakeCallback C++ API
- DEP0100:
process.assert()
- DEP0101:
--with-lttng
- DEP0102: 在 Buffer#(read|write) 操作中使用 noAssert
- DEP0103: process.binding('util').is[...] 类型检查
- DEP0104: process.env 字符串强制转换
- DEP0105:
decipher.finaltol
- DEP0106: crypto.createCipher 和 crypto.createDecipher
- DEP0107:
tls.convertNPNProtocols()
- DEP0108:
zlib.bytesRead
- DEP0109: 无效 URL 的 http、https 和 tls 支持
- DEP0110: vm.Script 缓存的数据
- DEP0111:
process.binding()
- DEP0112: dgram 私有的 API
- DEP0113:
Cipher.setAuthTag()
,Decipher.getAuthTag()
- DEP0114:
crypto._toBuf()
- DEP0115:
crypto.prng()
,crypto.pseudoRandomBytes()
,crypto.rng()
- DEP0116: 旧版的 URL API
- DEP0117: 原生加密句柄
- DEP0118: dns.lookup() 支持虚假的主机名
- DEP0119: process.binding('uv').errname() 私有的 API
- DEP0120: Windows 性能计数器支持
- DEP0121:
net._setSimultaneousAccepts()
- DEP0122:
tls
Server.prototype.setOptions()
- DEP0123: 将 TLS ServerName 设置为 IP 地址
- DEP0124: 使用 REPLServer.rli
- DEP0125:
require('_stream_wrap')
- DEP0126:
timers.active()
- DEP0127:
timers._unrefActive()
- DEP0128: 具有无效主条目和 index.js 文件的模块
- DEP0129:
ChildProcess._channel
- DEP0130:
Module.createRequireFromPath()
- DEP0131: 旧版的 HTTP 解析器
- DEP0132: 使用回调的 worker.terminate()
- DEP0133:
http
connection
- DEP0134:
process._tickCallback
- DEP0136:
http
finished
- DEP0139: 不使用参数的 process.umask()
- DEP0144:
module.parent
- DEP0001:
deprecation 弃用#
-
该 API 的使用是不安全的。
-
改进的替代 API 可用。
-
预计在未来的主要版本中会对 API 进行重大更改。
-
仅文档
-
运行时
-
生命结束
仅文档弃用是仅在 Node.js API 文档中表达的弃用。
这些在运行 Node.js 时不会产生副作用。
某些仅文档的弃用在使用 --pending-deprecation
标志(或其替代的 NODE_PENDING_DEPRECATION=1
环境变量)启动时会触发运行时警告,类似于下面的运行时弃用。
支持该标志的仅文档弃用已在弃用的 API 列表 中明确标记。
默认情况下,运行时弃用将生成进程警告,该警告将在第一次使用弃用的 API 时打印到 stderr
。
当使用 --throw-deprecation
命令行标志时,运行时弃用将导致抛出错误。
当特性已经或即将从 Node.js 中删除时,使用生命结束的弃用。
撤销的弃用#
在这种情况下,本文件将更新与决定相关的信息。 但是,弃用标识符不会被修改。
弃用的 API 列表#
DEP0001: http.OutgoingMessage.prototype.flush
#
类型: 运行时
OutgoingMessage.prototype.flush()
方法已弃用。
改用 OutgoingMessage.prototype.flushHeaders()
。
DEP0002: require('_linklist')
#
类型: 生命结束
_linklist
模块已弃用。
请使用用户空间替代方案。
DEP0003: _writableState.buffer
#
类型: 运行时
_writableState.buffer
属性已弃用。
DEP0004: CryptoStream.prototype.readyState
#
类型: 生命结束
CryptoStream.prototype.readyState
属性已被删除。
DEP0005: Buffer() 构造函数#
类型: 运行时(支持 --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()
,都会产生运行时警告。
DEP0006: child_process
options.customFds
#
类型: 生命结束
在 child_process
模块的 spawn()
、fork()
和 exec()
方法中,options.customFds
选项已弃用。
应该使用 options.stdio
选项。
DEP0007: 使用 worker.exitedAfterDisconnect 替换集群的 worker.suicide#
类型: 生命结束
在 Node.js cluster
的早期版本中,名为 suicide
的布尔属性被添加到 Worker
对象中。
此属性的目的是提供 Worker
实例退出的方式和原因的指示。
在 Node.js 6.0.0 中, 旧属性已被弃用,并被新的 worker.exitedAfterDisconnect
属性替换。
旧版的属性名称没有准确描述实际的语义,并且不必要地充满了情感。
DEP0008: require('constants')
#
类型: 仅文档
constants
模块已弃用。
当需要访问与特定 Node.js 内置模块相关的常量时,开发者应改为参考相关模块公开的 constants
属性。
例如,require('fs').constants
和 require('os').constants
。
DEP0009: 没有摘要的 crypto.pbkdf2#
类型: 运行时
在 Node.js 6.0 中,不指定摘要的 crypto.pbkdf2()
API 已弃用,因为该方法默认使用非推荐的 'SHA1'
摘要。
以前,打印过弃用警告。
从 Node.js 8.0.0 开始,在 digest
设置为 undefined
的情况下调用 crypto.pbkdf2()
或 crypto.pbkdf2Sync()
将抛出 TypeError
。
DEP0010: crypto.createCredentials
#
类型: 生命结束
crypto.createCredentials()
API 已被移除。
请改用 tls.createSecureContext()
。
DEP0011: crypto.Credentials
#
类型: 生命结束
crypto.Credentials
类已被删除。
请改用 tls.SecureContext
。
DEP0012: Domain.dispose
#
类型: 生命结束
Domain.dispose()
已被删除。
改为通过在域上设置的错误事件处理程序显式从失败的 I/O 操作中恢复。
DEP0013: 没有回调的 fs 异步函数#
类型: 生命结束
在 Node.js 10.0.0 及更高版本中调用没有回调的异步函数会引发 TypeError
。
参阅 https://github.com/nodejs/node/pull/12562。
DEP0014: fs.read 旧版的字符串接口#
类型: 生命结束
fs.read()
旧版的 String
接口已弃用。
改用文档中提到的 Buffer
API。
DEP0015: fs.readSync 旧版的字符串接口#
类型: 生命结束
fs.readSync()
旧版的 String
接口已弃用。
改用文档中提到的 Buffer
API。
DEP0016: GLOBAL
/root
#
类型: 运行时
DEP0017: Intl.v8BreakIterator
#
类型: 生命结束
Intl.v8BreakIterator
是非标准的扩展,已被删除。
参阅 Intl.Segmenter
。
DEP0018: 未处理的 promise 拒绝#
类型: 运行时
未处理的 promise 拒绝已弃用。 将来,未处理的 promise 拒绝将使用非零退出代码终止 Node.js 进程。
DEP0019: require('.') 在目录外解析#
类型: 生命结束
在某些情况下,require('.')
可以在包目录之外解析。
此行为已被删除。
DEP0020: Server.connections
#
类型: 运行时
Server.connections
属性已弃用。
请改用 Server.getConnections()
方法。
DEP0021: Server.listenFD
#
类型: 生命结束
Server.listenFD()
方法已被弃用并删除。
请改用 Server.listen({fd: <number>})
。
DEP0022: os.tmpDir()
#
类型: 运行时
os.tmpDir()
API 已弃用。
请改用 os.tmpdir()
。
DEP0023: os.getNetworkInterfaces()
#
类型: 生命结束
os.getNetworkInterfaces()
方法已弃用。
请改用 os.networkInterfaces()
方法。
DEP0024: REPLServer.prototype.convertToContext()
#
类型: 生命结束
REPLServer.prototype.convertToContext()
API 已被移除。
DEP0025: require('sys')
#
类型: 运行时
sys
模块已弃用。
请改用 util
模块。
DEP0026: util.print()
#
类型: 生命结束
util.print()
已被删除。
请改用 console.log()
。
DEP0027: util.puts()
#
类型: 生命结束
util.puts()
已被删除。
请改用 console.log()
。
DEP0028: util.debug()
#
类型: 生命结束
util.debug()
已被删除。
请改用 console.error()
。
DEP0029: util.error()
#
类型: 生命结束
util.error()
已被删除。
请改用 console.error()
。
DEP0030: SlowBuffer
#
类型: 仅文档
SlowBuffer
类已弃用。
请改用 Buffer.allocUnsafeSlow(size)
。
DEP0031: ecdh.setPublicKey()
#
类型: 仅文档
ecdh.setPublicKey()
方法现在已被弃用,因为它包含在 API 中没有用。
DEP0032: domain 模块#
类型: 仅文档
domain
模块已弃用,不应使用。
DEP0033: EventEmitter.listenerCount()
#
类型: 仅文档
EventEmitter.listenerCount(emitter, eventName)
API 已弃用。
请改用 emitter.listenerCount(eventName)
。
DEP0034: fs.exists(path, callback)
#
类型: 仅文档
fs.exists(path, callback)
API 已弃用。
请改用 fs.stat()
或 fs.access()
。
DEP0035: fs.lchmod(path, mode, callback)
#
类型: 仅文档
fs.lchmod(path, mode, callback)
API 已弃用。
DEP0036: fs.lchmodSync(path, mode)
#
类型: 仅文档
fs.lchmodSync(path, mode)
API 已弃用。
DEP0037: fs.lchown(path, uid, gid, callback)
#
类型: 弃用已撤销
fs.lchown(path, uid, gid, callback)
API 已被弃用。
由于在 libuv 中添加了必要的支持 API,因此弃用已被撤销。
DEP0038: fs.lchownSync(path, uid, gid)
#
类型: 弃用已撤销
fs.lchownSync(path, uid, gid)
API 已被弃用。
由于在 libuv 中添加了必要的支持 API,因此弃用已被撤销。
DEP0039: require.extensions
#
类型: 仅文档
require.extensions
属性已弃用。
DEP0040: punycode 模块#
类型: 仅文档
punycode
模块已弃用。
请使用用户空间替代方案。
DEP0041: NODE_REPL_HISTORY_FILE 环境变量#
类型: 生命结束
NODE_REPL_HISTORY_FILE
环境变量已被删除。
请改用 NODE_REPL_HISTORY
。
DEP0042: tls.CryptoStream
#
类型: 生命结束
tls.CryptoStream
类已被删除。
请改用 tls.TLSSocket
。
DEP0043: tls.SecurePair
#
类型: 仅文档
tls.SecurePair
类已弃用。
请改用 tls.TLSSocket
。
DEP0044: util.isArray()
#
类型: 仅文档
util.isArray()
API 已弃用。
请改用 Array.isArray()
。
DEP0045: util.isBoolean()
#
类型: 仅文档
util.isBoolean()
API 已弃用。
DEP0046: util.isBuffer()
#
类型: 仅文档
util.isBuffer()
API 已弃用。
请改用 Buffer.isBuffer()
。
DEP0047: util.isDate()
#
类型: 仅文档
util.isDate()
API 已弃用。
DEP0048: util.isError()
#
类型: 仅文档
util.isError()
API 已弃用。
DEP0049: util.isFunction()
#
类型: 仅文档
util.isFunction()
API 已弃用。
DEP0050: util.isNull()
#
类型: 仅文档
util.isNull()
API 已弃用。
DEP0051: util.isNullOrUndefined()
#
类型: 仅文档
util.isNullOrUndefined()
API 已弃用。
DEP0052: util.isNumber()
#
类型: 仅文档
util.isNumber()
API 已弃用。
DEP0053 util.isObject()
#
类型: 仅文档
util.isObject()
API 已弃用。
DEP0054: util.isPrimitive()
#
类型: 仅文档
util.isPrimitive()
API 已弃用。
DEP0055: util.isRegExp()
#
类型: 仅文档
util.isRegExp()
API 已弃用。
DEP0056: util.isString()
#
类型: 仅文档
util.isString()
API 已弃用。
DEP0057: util.isSymbol()
#
类型: 仅文档
util.isSymbol()
API 已弃用。
DEP0058: util.isUndefined()
#
类型: 仅文档
util.isUndefined()
API 已弃用。
DEP0059: util.log()
#
类型: 仅文档
util.log()
API 已弃用。
DEP0060: util._extend()
#
类型: 仅文档
util._extend()
API 已弃用。
DEP0061: fs.SyncWriteStream
#
类型: 生命结束
fs.SyncWriteStream
类从未打算成为可公开访问的 API,因此已被删除。
没有可用的替代 API。
请使用用户空间替代方案。
DEP0062: node --debug
#
类型: 生命结束
--debug
激活旧版的 V8 调试器接口,该接口在 V8 5.8 中被删除。它被替换为使用 --inspect
激活的检查器。
DEP0063: ServerResponse.prototype.writeHeader()
#
类型: 仅文档
http
模块 ServerResponse.prototype.writeHeader()
API 已弃用。
请改用 ServerResponse.prototype.writeHead()
。
ServerResponse.prototype.writeHeader()
方法从未被记录为官方支持的 API。
DEP0064: tls.createSecurePair()
#
类型: 运行时
tls.createSecurePair()
API 在 Node.js 0.11.3 的文档中已弃用。 用户应该改用 tls.Socket
。
DEP0065: repl.REPL_MODE_MAGIC 和 NODE_REPL_MODE=magic#
类型: 生命结束
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
#
类型: 运行时
http
模块 OutgoingMessage.prototype._headers
和 OutgoingMessage.prototype._headerNames
属性已弃用。
OutgoingMessage.prototype._headers
和 OutgoingMessage.prototype._headerNames
属性从未被记录为官方支持的属性。
DEP0067: OutgoingMessage.prototype._renderHeaders
#
类型: 仅文档
http
模块 OutgoingMessage.prototype._renderHeaders()
API 已弃用。
OutgoingMessage.prototype._renderHeaders
属性从未被记录为官方支持的 API。
DEP0068: node debug
#
类型: 运行时
node debug
对应于旧版的命令行调试器,它已被替换为可通过 node inspect
获得的基于 V8 检查器的命令行调试器。
DEP0069: vm.runInDebugContext(string)
#
类型: 生命结束
DebugContext 已在 V8 中删除,在 Node.js 10+ 中不可用。
DebugContext 是实验性的 API。
DEP0070: async_hooks.currentId()
#
类型: 生命结束
为清楚起见,async_hooks.currentId()
已重命名为 async_hooks.executionAsyncId()
。
此更改是在 async_hooks
是实验性 API 时进行的。
DEP0071: async_hooks.triggerId()
#
类型: 生命结束
为清楚起见,async_hooks.triggerId()
已重命名为 async_hooks.triggerAsyncId()
。
此更改是在 async_hooks
是实验性 API 时进行的。
DEP0072: async_hooks.AsyncResource.triggerId()
#
类型: 生命结束
为清楚起见,async_hooks.AsyncResource.triggerId()
已重命名为 async_hooks.AsyncResource.triggerAsyncId()
。
此更改是在 async_hooks
是实验性 API 时进行的。
DEP0073: net.Server 的几个内部属性#
类型: 生命结束
不适当的名称访问 net.Server
实例的多个内部、未记录的属性已弃用。
由于原始的 API 未记录并且通常对非内部代码没有用处,因此不提供替代 API。
DEP0074: REPLServer.bufferedCommand
#
类型: 运行时
REPLServer.bufferedCommand
属性已被 REPLServer.clearBufferedCommand()
弃用。
DEP0075: REPLServer.parseREPLKeyword()
#
类型: 运行时
REPLServer.parseREPLKeyword()
已从用户空间可见性中删除。
DEP0076: tls.parseCertString()
#
类型: 运行时
tls.parseCertString()
是简单的解析助手,被错误地公开了。
此函数通常可以替换为:
const querystring = require('querystring');
querystring.parse(str, '\n', '=');
此函数不完全等同于 querystring.parse()
。
一个区别是 querystring.parse()
做 url 解码:
> querystring.parse('%E5%A5%BD=1', '\n', '=');
{ '好': '1' }
> tls.parseCertString('%E5%A5%BD=1');
{ '%E5%A5%BD': '1' }
DEP0077: Module._debug()
#
类型: 运行时
Module._debug()
已弃用。
Module._debug()
函数从未被记录为官方支持的 API。
DEP0078: REPLServer.turnOffEditorMode()
#
类型: 运行时
REPLServer.turnOffEditorMode()
已从用户空间可见性中删除。
DEP0079: 通过 .inspect() 对对象进行自定义检查函数#
类型: 生命结束
对象上名为 inspect
的属性来指定 util.inspect()
的自定义检查函数已弃用。
改用 util.inspect.custom
。
DEP0080: path._makeLong()
#
类型: 仅文档
内部的 path._makeLong()
不打算供公众使用。
但是,用户空间模块发现它很有用。
内部的 API 已被弃用,取而代之的是相同的公共 path.toNamespacedPath()
方法。
DEP0081: 使用文件描述符的 fs.truncate()#
类型: 运行时
fs.truncate()
fs.truncateSync()
使用文件描述符已被弃用。
请使用 fs.ftruncate()
或 fs.ftruncateSync()
来处理文件描述符。
DEP0082: REPLServer.prototype.memory()
#
类型: 运行时
REPLServer.prototype.memory()
只对 REPLServer
本身的内部机制是必需的。
不要使用此函数。
DEP0083: 通过将 ecdhCurve 设置为 false 来禁用 ECDH#
类型: 生命结束。
tls.createSecureContext()
和 tls.TLSSocket
的 ecdhCurve
选项可以设置为 false
以仅在服务器上完全禁用 ECDH。
在准备迁移到 OpenSSL 1.1.0 并与客户端保持一致时,此模式已弃用,现在不受支持。
改用 ciphers
参数。
DEP0084: 需要捆绑的内部依赖项#
类型: 生命结束
从 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()
导入它们的合法用例。
如果这样做,则无需修改源代码。
DEP0085: AsyncHooks 的敏感 API#
类型: 生命结束
AsyncHooks 的敏感 API 从未被记录并且存在各种小问题。
改用 AsyncResource
API。
参阅 https://github.com/nodejs/node/issues/15572。
DEP0086: 删除 runInAsyncIdScope#
类型: 生命结束
runInAsyncIdScope
不会触发 'before'
或 'after'
事件,因此会导致很多问题。
参阅 https://github.com/nodejs/node/issues/14328。
DEP0089: require('assert')
#
类型: 弃用已撤销
不建议直接导入断言,因为公开的函数使用松散的相等检查。
弃用被撤销是因为不鼓励使用 assert
模块,弃用导致开发者困惑。
DEP0090: 无效的 GCM 身份验证标签长度#
类型: 生命结束
Node.js 用于支持调用 decipher.setAuthTag()
时 OpenSSL 接受的所有 GCM 身份验证标签长度。
从 Node.js v11.0.0 开始,只允许 128、120、112、104、96、64 和 32 位的身份验证标签长度。
根据 NIST SP 800-38D,其他长度的身份验证标签无效。
DEP0091: crypto.DEFAULT_ENCODING
#
类型: 运行时
crypto.DEFAULT_ENCODING
属性已弃用。
DEP0092: 顶层 this 绑定到 module.exports#
类型: 仅文档
将属性分配给顶层 this
作为 module.exports
的替代方法已弃用。
开发者应该使用 exports
或 module.exports
。
DEP0093: crypto.fips 已弃用和替换#
类型: 仅文档
crypto.fips
属性已弃用。
请改用 crypto.setFips()
和 crypto.getFips()
。
DEP0094: 使用带有多个参数的 assert.fail()#
类型: 运行时
使用多个参数的 assert.fail()
已弃用。
仅使用一个参数使用 assert.fail()
或使用不同的 assert
模块方法。
DEP0095: timers.enroll()
#
类型: 运行时
timers.enroll()
已弃用。
请改用公开记录的 setTimeout()
或 setInterval()
。
DEP0096: timers.unenroll()
#
类型: 运行时
timers.unenroll()
已弃用。
请改用公开记录的 clearTimeout()
或 clearInterval()
。
DEP0097: 具有域属性的 MakeCallback#
类型: 运行时
添加 domain
属性携带上下文的 MakeCallback
的用户,应该开始使用 MakeCallback
或 CallbackScope
的 async_context
变体,或者高层的 AsyncResource
类。
DEP0098: AsyncHooks 嵌入器 AsyncResource.emitBefore 和 AsyncResource.emitAfter API#
类型: 生命结束
AsyncHooks 提供的嵌入式 API 暴露了 .emitBefore()
和 .emitAfter()
方法,这些方法很容易被错误地使用,从而导致不可恢复的错误。
改用 asyncResource.runInAsyncScope()
API,它提供了更安全、更方便的替代方案。
参阅 https://github.com/nodejs/node/pull/18513。
DEP0099: 异步上下文不感知的 node::MakeCallback C++ API#
类型: 编译时
原生模块可用的某些版本的 node::MakeCallback
API 已被弃用。
请使用接受 async_context
参数的 API 版本。
DEP0100: process.assert()
#
类型: 运行时
process.assert()
已弃用。
请改用 assert
模块。
这从来都不是记录的特性。
DEP0101: --with-lttng
#
类型: 生命结束
--with-lttng
编译时选项已被删除。
DEP0102: 在 Buffer#(read|write) 操作中使用 noAssert#
类型: 生命结束
使用 noAssert
参数不再起作用。
所有输入都将被验证,无论它是否设置为真。
跳过验证可能会导致难以发现错误和崩溃。
DEP0103: process.binding('util').is[...] 类型检查#
类型: 仅文档(支持 --pending-deprecation
)
一般应避免使用 process.binding()
。
特别是类型检查方法可以使用 util.types
代替。
此弃用已被 process.binding()
API (DEP0111) 的弃用所取代。
DEP0104: process.env 字符串强制转换#
类型: 仅文档(支持 --pending-deprecation
)
将非字符串属性赋值给 process.env
时,赋值隐式转换为字符串。
如果分配的值不是字符串、布尔值或数字,则此行为已弃用。
请先将该属性转换为字符串,然后再将其分配给 process.env
。
DEP0105: decipher.finaltol
#
类型: 生命结束
decipher.finaltol()
从未被记录,它是 decipher.final()
的别名。
此 API 已移除,建议改用 decipher.final()
。
DEP0106: crypto.createCipher 和 crypto.createDecipher#
类型: 运行时
应避免使用 crypto.createCipher()
和 crypto.createDecipher()
,因为它们使用弱密钥派生函数(不含盐的 MD5)和静态初始化向量。
推荐使用 crypto.pbkdf2()
或 crypto.scrypt()
导出密钥,使用 crypto.createCipheriv()
和 crypto.createDecipheriv()
分别获取 Cipher
和 Decipher
对象。
DEP0107: tls.convertNPNProtocols()
#
类型: 生命结束
这是未记录的帮助函数,不打算在 Node.js 核心之外使用,并且因删除 NPN(下一个协议协商)支持而过时。
DEP0108: zlib.bytesRead
#
类型: 运行时
弃用的 zlib.bytesWritten
别名。
选择这个原始名称是因为将值解释为引擎读取的字节数也是有意义的,但与 Node.js 中以这些名称公开值的其他流不一致。
DEP0109: 无效 URL 的 http、https 和 tls 支持#
类型: 运行时
一些以前支持(但严格无效)的 URL 已通过 http.request()
、http.get()
、https.request()
、https.get()
和 tls.checkServerIdentity()
API 接受,因为它们已被旧版的 url.parse()
API 接受。
上述 API 现在使用 WHATWG URL 解析器,它需要严格有效的 URL。
传入无效的 URL 已被弃用,未来将删除支持。
DEP0110: vm.Script 缓存的数据#
类型: 仅文档
produceCachedData
选项已弃用。
改用 script.createCachedData()
。
DEP0111: process.binding()
#
类型: 仅文档(支持 --pending-deprecation
)
process.binding()
仅供 Node.js 内部代码使用。
DEP0112: dgram 私有的 API#
类型: 运行时
dgram
模块以前包含几个 API,这些 API 从未打算在 Node.js 核心之外访问: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()
#
类型: 生命结束
Cipher.setAuthTag()
和 Decipher.getAuthTag()
不再可用。
它们从未被记录,并且在被调用时会抛出。
DEP0114: crypto._toBuf()
#
类型: 生命结束
crypto._toBuf()
函数不是为 Node.js 核心之外的模块设计的,因此被移除了。
DEP0115: crypto.prng()
, crypto.pseudoRandomBytes()
, crypto.rng()
#
类型: 仅文档(支持 --pending-deprecation
)
在 Node.js 的最新版本中,crypto.randomBytes()
和 crypto.pseudoRandomBytes()
没有区别。
DEP0116: 旧版的 URL API#
类型: 仅文档
旧版的 URL API 已弃用。
这包括 url.format()
、url.parse()
、url.resolve()
和旧版的 urlObject
。
请改用 WHATWG URL API。
DEP0117: 原生加密句柄#
类型: 生命结束
以前版本的 Node.js 通过 Cipher
、Decipher
、DiffieHellman
、DiffieHellmanGroup
、ECDH
、Hash
、Hmac
、Sign
和 Verify
类的 _handle
属性向内部原生对象公开句柄。
_handle
属性已被移除,因为不当使用原生对象会导致应用程序崩溃。
DEP0118: dns.lookup() 支持虚假的主机名#
类型: 运行时
由于向后兼容,以前的 Node.js 版本支持使用虚假主机名的 dns.lookup()
(如 dns.lookup(false)
)。
此行为未记录,被认为在现实世界的应用程序中未使用。
在以后的 Node.js 版本中会出现错误。
DEP0119: process.binding('uv').errname() 私有的 API#
类型: 仅文档(支持 --pending-deprecation
)
process.binding('uv').errname()
已弃用。
请改用 util.getSystemErrorName()
。
DEP0120: Windows 性能计数器支持#
类型: 生命结束
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()
#
类型: 运行时
未记录的 net._setSimultaneousAccepts()
函数最初用于在 Windows 上使用 child_process
和 cluster
模块时进行调试和性能调整。
该函数一般不实用,正在被删除。
请参阅此处的讨论:https://github.com/nodejs/node/issues/18391
DEP0122: tls
Server.prototype.setOptions()
#
类型: 运行时
请改用 Server.prototype.setSecureContext()
。
DEP0123: 将 TLS ServerName 设置为 IP 地址#
类型: 运行时
RFC 6066 不允许将 TLS ServerName 设置为 IP 地址。 这将在以后的版本中被忽略。
DEP0124: 使用 REPLServer.rli#
类型: 运行时
此属性是对实例本身的引用。
DEP0125: require('_stream_wrap')
#
类型: 运行时
_stream_wrap
模块已弃用。
DEP0126: timers.active()
#
类型: 运行时
以前未记录的 timers.active()
已弃用。
请改用公开记录的 timeout.refresh()
。
如果需要重新引用超时,则可以使用 timeout.ref()
,而不会影响 Node.js 10 以来的性能。
DEP0127: timers._unrefActive()
#
类型: 运行时
以前未记录和私有的 timers._unrefActive()
已弃用。
请改用公开记录的 timeout.refresh()
。
如果需要取消引用超时,则可以使用 timeout.unref()
,从 Node.js 10 开始不会影响性能。
DEP0128: 具有无效主条目和 index.js 文件的模块#
类型: 仅文档(支持 --pending-deprecation
)
具有无效 main
条目(例如 ./does-not-exist.js
)并且在顶层目录中也有 index.js
文件的模块将解析 index.js
文件。
这已被弃用,并且会在未来的 Node.js 版本中引发错误。
DEP0129: ChildProcess._channel
#
类型: 仅文档
由 spawn()
和类似函数返回的子进程对象的 _channel
属性不适合公共使用。
改用 ChildProcess.channel
。
DEP0130: Module.createRequireFromPath()
#
类型: 仅文档
Module.createRequireFromPath() 已弃用。
请改用 module.createRequire()
。
DEP0131: 旧版的 HTTP 解析器#
类型: 运行时
DEP0132: 使用回调的 worker.terminate()#
类型: 运行时
将回调传给 worker.terminate()
已弃用。
使用返回的 Promise
代替,或者监听工作进程的 'exit'
事件。
DEP0133: http
connection
#
类型: 仅文档
选择 response.socket
胜过 response.connection
、request.socket
胜过 request.connection
。
DEP0134: process._tickCallback
#
类型: 仅文档(支持 --pending-deprecation
)
process._tickCallback
属性从未被记录为官方支持的 API。
DEP0136: http
finished
#
类型: 仅文档
response.finished
表示 response.end()
是否已被调用,而不是 'finish'
是否已触发并刷新底层数据。
为保持现有行为,response.finished
应替换为 response.writableEnded
。
DEP0139: 不使用参数的 process.umask()#
类型: 仅文档
不带参数调用 process.umask()
会导致进程范围的 umask 被写入两次。
这会在线程之间引入竞争条件,并且是一个潜在的安全漏洞。
没有安全、跨平台的替代 API。
DEP0144: module.parent
#
类型: 仅文档
CommonJS 模块可以使用 module.parent
访问第一个需要它的模块。
此特性已被弃用,因为它在存在 ECMAScript 模块的情况下无法始终如一地工作,并且因为它给出了 CommonJS 模块图的不准确表示。
一些模块用它来检查它们是否是当前进程的入口点。
而是,建议比较 require.main
和 module
:
if (require.main === module) {
// 仅当当前文件是入口点时才会运行的代码部分。
}
当查找需要当前的 CommonJS 模块时,可以使用 require.cache
和 module.children
:
const moduleParents = Object.values(require.cache)
.filter((m) => m.children.includes(module));