Node.js v24.0.0 文档
- Node.js v24.0.0
-
目录
- 错误
- 错误传播和拦截
- 类:
Error
- 类:
AssertionError
- 类:
RangeError
- 类:
ReferenceError
- 类:
SyntaxError
- 类:
SystemError
- 类:
TypeError
- 异常 vs. 错误
- OpenSSL 错误
- Node.js 错误代码
ABORT_ERR
ERR_ACCESS_DENIED
ERR_AMBIGUOUS_ARGUMENT
ERR_ARG_NOT_ITERABLE
ERR_ASSERTION
ERR_ASYNC_CALLBACK
ERR_ASYNC_TYPE
ERR_BROTLI_COMPRESSION_FAILED
ERR_BROTLI_INVALID_PARAM
ERR_BUFFER_CONTEXT_NOT_AVAILABLE
ERR_BUFFER_OUT_OF_BOUNDS
ERR_BUFFER_TOO_LARGE
ERR_CANNOT_WATCH_SIGINT
ERR_CHILD_CLOSED_BEFORE_REPLY
ERR_CHILD_PROCESS_IPC_REQUIRED
ERR_CHILD_PROCESS_STDIO_MAXBUFFER
ERR_CLOSED_MESSAGE_PORT
ERR_CONSOLE_WRITABLE_STREAM
ERR_CONSTRUCT_CALL_INVALID
ERR_CONSTRUCT_CALL_REQUIRED
ERR_CONTEXT_NOT_INITIALIZED
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED
ERR_CRYPTO_ECDH_INVALID_FORMAT
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY
ERR_CRYPTO_ENGINE_UNKNOWN
ERR_CRYPTO_FIPS_FORCED
ERR_CRYPTO_FIPS_UNAVAILABLE
ERR_CRYPTO_HASH_FINALIZED
ERR_CRYPTO_HASH_UPDATE_FAILED
ERR_CRYPTO_INCOMPATIBLE_KEY
ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS
ERR_CRYPTO_INITIALIZATION_FAILED
ERR_CRYPTO_INVALID_AUTH_TAG
ERR_CRYPTO_INVALID_COUNTER
ERR_CRYPTO_INVALID_CURVE
ERR_CRYPTO_INVALID_DIGEST
ERR_CRYPTO_INVALID_IV
ERR_CRYPTO_INVALID_JWK
ERR_CRYPTO_INVALID_KEYLEN
ERR_CRYPTO_INVALID_KEYPAIR
ERR_CRYPTO_INVALID_KEYTYPE
ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE
ERR_CRYPTO_INVALID_MESSAGELEN
ERR_CRYPTO_INVALID_SCRYPT_PARAMS
ERR_CRYPTO_INVALID_STATE
ERR_CRYPTO_INVALID_TAG_LENGTH
ERR_CRYPTO_JOB_INIT_FAILED
ERR_CRYPTO_JWK_UNSUPPORTED_CURVE
ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE
ERR_CRYPTO_OPERATION_FAILED
ERR_CRYPTO_PBKDF2_ERROR
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED
ERR_CRYPTO_SIGN_KEY_REQUIRED
ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH
ERR_CRYPTO_UNKNOWN_CIPHER
ERR_CRYPTO_UNKNOWN_DH_GROUP
ERR_CRYPTO_UNSUPPORTED_OPERATION
ERR_DEBUGGER_ERROR
ERR_DEBUGGER_STARTUP_ERROR
ERR_DIR_CLOSED
ERR_DIR_CONCURRENT_OPERATION
ERR_DLOPEN_DISABLED
ERR_DLOPEN_FAILED
ERR_DNS_SET_SERVERS_FAILED
ERR_DOMAIN_CALLBACK_NOT_AVAILABLE
ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE
ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION
ERR_ENCODING_INVALID_ENCODED_DATA
ERR_ENCODING_NOT_SUPPORTED
ERR_EVAL_ESM_CANNOT_PRINT
ERR_EVENT_RECURSION
ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE
ERR_FALSY_VALUE_REJECTION
ERR_FEATURE_UNAVAILABLE_ON_PLATFORM
ERR_FS_CP_DIR_TO_NON_DIR
ERR_FS_CP_EEXIST
ERR_FS_CP_EINVAL
ERR_FS_CP_FIFO_PIPE
ERR_FS_CP_NON_DIR_TO_DIR
ERR_FS_CP_SOCKET
ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY
ERR_FS_CP_UNKNOWN
ERR_FS_EISDIR
ERR_FS_FILE_TOO_LARGE
ERR_HTTP2_ALTSVC_INVALID_ORIGIN
ERR_HTTP2_ALTSVC_LENGTH
ERR_HTTP2_CONNECT_AUTHORITY
ERR_HTTP2_CONNECT_PATH
ERR_HTTP2_CONNECT_SCHEME
ERR_HTTP2_ERROR
ERR_HTTP2_GOAWAY_SESSION
ERR_HTTP2_HEADERS_AFTER_RESPOND
ERR_HTTP2_HEADERS_SENT
ERR_HTTP2_HEADER_SINGLE_VALUE
ERR_HTTP2_INFO_STATUS_NOT_ALLOWED
ERR_HTTP2_INVALID_CONNECTION_HEADERS
ERR_HTTP2_INVALID_HEADER_VALUE
ERR_HTTP2_INVALID_INFO_STATUS
ERR_HTTP2_INVALID_ORIGIN
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH
ERR_HTTP2_INVALID_PSEUDOHEADER
ERR_HTTP2_INVALID_SESSION
ERR_HTTP2_INVALID_SETTING_VALUE
ERR_HTTP2_INVALID_STREAM
ERR_HTTP2_MAX_PENDING_SETTINGS_ACK
ERR_HTTP2_NESTED_PUSH
ERR_HTTP2_NO_MEM
ERR_HTTP2_NO_SOCKET_MANIPULATION
ERR_HTTP2_ORIGIN_LENGTH
ERR_HTTP2_OUT_OF_STREAMS
ERR_HTTP2_PAYLOAD_FORBIDDEN
ERR_HTTP2_PING_CANCEL
ERR_HTTP2_PING_LENGTH
ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED
ERR_HTTP2_PUSH_DISABLED
ERR_HTTP2_SEND_FILE
ERR_HTTP2_SEND_FILE_NOSEEK
ERR_HTTP2_SESSION_ERROR
ERR_HTTP2_SETTINGS_CANCEL
ERR_HTTP2_SOCKET_BOUND
ERR_HTTP2_SOCKET_UNBOUND
ERR_HTTP2_STATUS_101
ERR_HTTP2_STATUS_INVALID
ERR_HTTP2_STREAM_CANCEL
ERR_HTTP2_STREAM_ERROR
ERR_HTTP2_STREAM_SELF_DEPENDENCY
ERR_HTTP2_TOO_MANY_CUSTOM_SETTINGS
ERR_HTTP2_TOO_MANY_INVALID_FRAMES
ERR_HTTP2_TRAILERS_ALREADY_SENT
ERR_HTTP2_TRAILERS_NOT_READY
ERR_HTTP2_UNSUPPORTED_PROTOCOL
ERR_HTTP_BODY_NOT_ALLOWED
ERR_HTTP_CONTENT_LENGTH_MISMATCH
ERR_HTTP_HEADERS_SENT
ERR_HTTP_INVALID_HEADER_VALUE
ERR_HTTP_INVALID_STATUS_CODE
ERR_HTTP_REQUEST_TIMEOUT
ERR_HTTP_SOCKET_ASSIGNED
ERR_HTTP_SOCKET_ENCODING
ERR_HTTP_TRAILER_INVALID
ERR_ILLEGAL_CONSTRUCTOR
ERR_IMPORT_ATTRIBUTE_MISSING
ERR_IMPORT_ATTRIBUTE_TYPE_INCOMPATIBLE
ERR_IMPORT_ATTRIBUTE_UNSUPPORTED
ERR_INCOMPATIBLE_OPTION_PAIR
ERR_INPUT_TYPE_NOT_ALLOWED
ERR_INSPECTOR_ALREADY_ACTIVATED
ERR_INSPECTOR_ALREADY_CONNECTED
ERR_INSPECTOR_CLOSED
ERR_INSPECTOR_COMMAND
ERR_INSPECTOR_NOT_ACTIVE
ERR_INSPECTOR_NOT_AVAILABLE
ERR_INSPECTOR_NOT_CONNECTED
ERR_INSPECTOR_NOT_WORKER
ERR_INTERNAL_ASSERTION
ERR_INVALID_ADDRESS
ERR_INVALID_ADDRESS_FAMILY
ERR_INVALID_ARG_TYPE
ERR_INVALID_ARG_VALUE
ERR_INVALID_ASYNC_ID
ERR_INVALID_BUFFER_SIZE
ERR_INVALID_CHAR
ERR_INVALID_CURSOR_POS
ERR_INVALID_FD
ERR_INVALID_FD_TYPE
ERR_INVALID_FILE_URL_HOST
ERR_INVALID_FILE_URL_PATH
ERR_INVALID_HANDLE_TYPE
ERR_INVALID_HTTP_TOKEN
ERR_INVALID_IP_ADDRESS
ERR_INVALID_MIME_SYNTAX
ERR_INVALID_MODULE
ERR_INVALID_MODULE_SPECIFIER
ERR_INVALID_OBJECT_DEFINE_PROPERTY
ERR_INVALID_PACKAGE_CONFIG
ERR_INVALID_PACKAGE_TARGET
ERR_INVALID_PROTOCOL
ERR_INVALID_REPL_EVAL_CONFIG
ERR_INVALID_REPL_INPUT
ERR_INVALID_RETURN_PROPERTY
ERR_INVALID_RETURN_PROPERTY_VALUE
ERR_INVALID_RETURN_VALUE
ERR_INVALID_STATE
ERR_INVALID_SYNC_FORK_INPUT
ERR_INVALID_THIS
ERR_INVALID_TUPLE
ERR_INVALID_TYPESCRIPT_SYNTAX
ERR_INVALID_URI
ERR_INVALID_URL
ERR_INVALID_URL_PATTERN
ERR_INVALID_URL_SCHEME
ERR_IPC_CHANNEL_CLOSED
ERR_IPC_DISCONNECTED
ERR_IPC_ONE_PIPE
ERR_IPC_SYNC_FORK
ERR_IP_BLOCKED
ERR_LOADER_CHAIN_INCOMPLETE
ERR_LOAD_SQLITE_EXTENSION
ERR_MEMORY_ALLOCATION_FAILED
ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE
ERR_METHOD_NOT_IMPLEMENTED
ERR_MISSING_ARGS
ERR_MISSING_OPTION
ERR_MISSING_PASSPHRASE
ERR_MISSING_PLATFORM_FOR_WORKER
ERR_MODULE_NOT_FOUND
ERR_MULTIPLE_CALLBACK
ERR_NAPI_CONS_FUNCTION
ERR_NAPI_INVALID_DATAVIEW_ARGS
ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT
ERR_NAPI_INVALID_TYPEDARRAY_LENGTH
ERR_NAPI_TSFN_CALL_JS
ERR_NAPI_TSFN_GET_UNDEFINED
ERR_NON_CONTEXT_AWARE_DISABLED
ERR_NOT_BUILDING_SNAPSHOT
ERR_NOT_IN_SINGLE_EXECUTABLE_APPLICATION
ERR_NOT_SUPPORTED_IN_SNAPSHOT
ERR_NO_CRYPTO
ERR_NO_ICU
ERR_NO_TYPESCRIPT
ERR_OPERATION_FAILED
ERR_OPTIONS_BEFORE_BOOTSTRAPPING
ERR_OUT_OF_RANGE
ERR_PACKAGE_IMPORT_NOT_DEFINED
ERR_PACKAGE_PATH_NOT_EXPORTED
ERR_PARSE_ARGS_INVALID_OPTION_VALUE
ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL
ERR_PARSE_ARGS_UNKNOWN_OPTION
ERR_PERFORMANCE_INVALID_TIMESTAMP
ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS
ERR_PROTO_ACCESS
ERR_QUIC_APPLICATION_ERROR
ERR_QUIC_CONNECTION_FAILED
ERR_QUIC_ENDPOINT_CLOSED
ERR_QUIC_OPEN_STREAM_FAILED
ERR_QUIC_TRANSPORT_ERROR
ERR_QUIC_VERSION_NEGOTIATION_ERROR
ERR_REQUIRE_ASYNC_MODULE
ERR_REQUIRE_CYCLE_MODULE
ERR_REQUIRE_ESM
ERR_SCRIPT_EXECUTION_INTERRUPTED
ERR_SCRIPT_EXECUTION_TIMEOUT
ERR_SERVER_ALREADY_LISTEN
ERR_SERVER_NOT_RUNNING
ERR_SINGLE_EXECUTABLE_APPLICATION_ASSET_NOT_FOUND
ERR_SOCKET_ALREADY_BOUND
ERR_SOCKET_BAD_BUFFER_SIZE
ERR_SOCKET_BAD_PORT
ERR_SOCKET_BAD_TYPE
ERR_SOCKET_BUFFER_SIZE
ERR_SOCKET_CLOSED
ERR_SOCKET_CLOSED_BEFORE_CONNECTION
ERR_SOCKET_CONNECTION_TIMEOUT
ERR_SOCKET_DGRAM_IS_CONNECTED
ERR_SOCKET_DGRAM_NOT_CONNECTED
ERR_SOCKET_DGRAM_NOT_RUNNING
ERR_SOURCE_MAP_CORRUPT
ERR_SOURCE_MAP_MISSING_SOURCE
ERR_SOURCE_PHASE_NOT_DEFINED
ERR_SQLITE_ERROR
ERR_SRI_PARSE
ERR_STREAM_ALREADY_FINISHED
ERR_STREAM_CANNOT_PIPE
ERR_STREAM_DESTROYED
ERR_STREAM_NULL_VALUES
ERR_STREAM_PREMATURE_CLOSE
ERR_STREAM_PUSH_AFTER_EOF
ERR_STREAM_UNABLE_TO_PIPE
ERR_STREAM_UNSHIFT_AFTER_END_EVENT
ERR_STREAM_WRAP
ERR_STREAM_WRITE_AFTER_END
ERR_STRING_TOO_LONG
ERR_SYNTHETIC
ERR_SYSTEM_ERROR
ERR_TEST_FAILURE
ERR_TLS_ALPN_CALLBACK_INVALID_RESULT
ERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLS
ERR_TLS_CERT_ALTNAME_FORMAT
ERR_TLS_CERT_ALTNAME_INVALID
ERR_TLS_DH_PARAM_SIZE
ERR_TLS_HANDSHAKE_TIMEOUT
ERR_TLS_INVALID_CONTEXT
ERR_TLS_INVALID_PROTOCOL_METHOD
ERR_TLS_INVALID_PROTOCOL_VERSION
ERR_TLS_INVALID_STATE
ERR_TLS_PROTOCOL_VERSION_CONFLICT
ERR_TLS_PSK_SET_IDENTITY_HINT_FAILED
ERR_TLS_RENEGOTIATION_DISABLED
ERR_TLS_REQUIRED_SERVER_NAME
ERR_TLS_SESSION_ATTACK
ERR_TLS_SNI_FROM_SERVER
ERR_TRACE_EVENTS_CATEGORY_REQUIRED
ERR_TRACE_EVENTS_UNAVAILABLE
ERR_TRANSFORM_ALREADY_TRANSFORMING
ERR_TRANSFORM_WITH_LENGTH_0
ERR_TTY_INIT_FAILED
ERR_UNAVAILABLE_DURING_EXIT
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET
ERR_UNESCAPED_CHARACTERS
ERR_UNHANDLED_ERROR
ERR_UNKNOWN_BUILTIN_MODULE
ERR_UNKNOWN_CREDENTIAL
ERR_UNKNOWN_ENCODING
ERR_UNKNOWN_FILE_EXTENSION
ERR_UNKNOWN_MODULE_FORMAT
ERR_UNKNOWN_SIGNAL
ERR_UNSUPPORTED_DIR_IMPORT
ERR_UNSUPPORTED_ESM_URL_SCHEME
ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING
ERR_UNSUPPORTED_RESOLVE_REQUEST
ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
ERR_USE_AFTER_CLOSE
ERR_VALID_PERFORMANCE_ENTRY_TYPE
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG
ERR_VM_MODULE_ALREADY_LINKED
ERR_VM_MODULE_CACHED_DATA_REJECTED
ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA
ERR_VM_MODULE_DIFFERENT_CONTEXT (ERR_VM_模块_不同_上下文)
ERR_VM_MODULE_LINK_FAILURE (ERR_VM_模块_链接_失败)
ERR_VM_MODULE_NOT_MODULE (ERR_VM_模块_不是_模块)
ERR_VM_MODULE_STATUS (ERR_VM_模块_状态)
ERR_WASI_ALREADY_STARTED (ERR_WASI_已_启动)
ERR_WASI_NOT_STARTED (ERR_WASI_未_启动)
ERR_WEBASSEMBLY_RESPONSE (ERR_WEBASSEMBLY_响应)
ERR_WORKER_INIT_FAILED (ERR_工作线程_初始化_失败)
ERR_WORKER_INVALID_EXEC_ARGV (ERR_工作线程_无效_执行_参数)
ERR_WORKER_MESSAGING_ERRORED (ERR_工作线程_消息传递_出错)
ERR_WORKER_MESSAGING_FAILED (ERR_工作线程_消息传递_失败)
ERR_WORKER_MESSAGING_SAME_THREAD (ERR_工作线程_消息传递_相同_线程)
ERR_WORKER_MESSAGING_TIMEOUT (ERR_工作线程_消息传递_超时)
ERR_WORKER_NOT_RUNNING (ERR_工作线程_未_运行)
ERR_WORKER_OUT_OF_MEMORY (ERR_工作线程_内存溢出)
ERR_WORKER_PATH (ERR_工作线程_路径)
ERR_WORKER_UNSERIALIZABLE_ERROR (ERR_工作线程_无法序列化_错误)
ERR_WORKER_UNSUPPORTED_OPERATION (ERR_工作线程_不支持_操作)
ERR_ZLIB_INITIALIZATION_FAILED (ERR_ZLIB_初始化_失败)
ERR_ZSTD_INVALID_PARAM (ERR_ZSTD_无效_参数)
HPE_CHUNK_EXTENSIONS_OVERFLOW (HPE_块_扩展_溢出)
HPE_HEADER_OVERFLOW (HPE_头部_溢出)
HPE_UNEXPECTED_CONTENT_LENGTH (HPE_意外的_内容长度)
MODULE_NOT_FOUND (模块未找到)
- Legacy Node.js error codes (旧的 Node.js 错误代码)
ERR_CANNOT_TRANSFER_OBJECT (ERR_无法_传输_对象)
ERR_CPU_USAGE (ERR_CPU_使用率)
ERR_CRYPTO_HASH_DIGEST_NO_UTF16 (ERR_CRYPTO_哈希_摘要_无_UTF16)
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER (ERR_CRYPTO_SCRYPT_无效_参数)
ERR_FS_INVALID_SYMLINK_TYPE (ERR_FS_无效的_符号链接_类型)
ERR_HTTP2_FRAME_ERROR (ERR_HTTP2_帧_错误)
ERR_HTTP2_HEADERS_OBJECT (ERR_HTTP2_头部_对象)
ERR_HTTP2_HEADER_REQUIRED (ERR_HTTP2_头部_必需)
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND (ERR_HTTP2_信息_头部_在_响应之后)
ERR_HTTP2_STREAM_CLOSED (ERR_HTTP2_流_关闭)
ERR_HTTP_INVALID_CHAR (ERR_HTTP_无效_字符)
ERR_IMPORT_ASSERTION_TYPE_FAILED (ERR_导入_断言_类型_失败)
ERR_IMPORT_ASSERTION_TYPE_MISSING (ERR_导入_断言_类型_缺失)
ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED (ERR_导入_断言_类型_不支持)
ERR_INDEX_OUT_OF_RANGE (ERR_索引_超出范围)
ERR_INVALID_OPT_VALUE (ERR_无效_选项_值)
ERR_INVALID_OPT_VALUE_ENCODING (ERR_无效_选项_值_编码)
ERR_INVALID_PERFORMANCE_MARK (ERR_无效_性能_标记)
ERR_INVALID_TRANSFER_OBJECT (ERR_无效_传输_对象)
ERR_MANIFEST_ASSERT_INTEGRITY (ERR_清单_断言_完整性)
ERR_MANIFEST_DEPENDENCY_MISSING (ERR_清单_依赖_缺失)
ERR_MANIFEST_INTEGRITY_MISMATCH (ERR_清单_完整性_不匹配)
ERR_MANIFEST_INVALID_RESOURCE_FIELD (ERR_清单_无效_资源_字段)
ERR_MANIFEST_INVALID_SPECIFIER (ERR_清单_无效_指定符)
ERR_MANIFEST_PARSE_POLICY (ERR_清单_解析_策略)
ERR_MANIFEST_TDZ (ERR_清单_TDZ)
ERR_MANIFEST_UNKNOWN_ONERROR (ERR_清单_未知_ONERROR)
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST (ERR_传输列表_缺少_消息端口)
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST (ERR_传输列表_缺少_可转移对象)
ERR_NAPI_CONS_PROTOTYPE_OBJECT (ERR_NAPI_CONS_原型_对象)
ERR_NAPI_TSFN_START_IDLE_LOOP (ERR_NAPI_TSFN_启动_空闲_循环)
ERR_NAPI_TSFN_STOP_IDLE_LOOP (ERR_NAPI_TSFN_停止_空闲_循环)
ERR_NO_LONGER_SUPPORTED (ERR_不再_支持)
ERR_OUTOFMEMORY (ERR_内存溢出)
ERR_PARSE_HISTORY_DATA (ERR_解析_历史_数据)
ERR_SOCKET_CANNOT_SEND (ERR_套接字_无法_发送)
ERR_STDERR_CLOSE (ERR_标准错误_关闭)
ERR_STDOUT_CLOSE (ERR_标准输出_关闭)
ERR_STREAM_READ_NOT_IMPLEMENTED (ERR_流_读取_未实现)
ERR_TAP_LEXER_ERROR (ERR_TAP_词法分析器_错误)
ERR_TAP_PARSER_ERROR (ERR_TAP_解析器_错误)
ERR_TAP_VALIDATION_ERROR (ERR_TAP_验证_错误)
ERR_TLS_RENEGOTIATION_FAILED (ERR_TLS_重新协商_失败)
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER (ERR_正在传输_外部化_共享数组缓冲区)
ERR_UNKNOWN_STDIN_TYPE (ERR_未知_标准输入_类型)
ERR_UNKNOWN_STREAM_TYPE (ERR_未知_流_类型)
ERR_V8BREAKITERATOR (ERR_V8BREAKITERATOR)
ERR_VALUE_OUT_OF_RANGE (ERR_值_超出范围)
ERR_VM_MODULE_LINKING_ERRORED (ERR_VM_模块_链接_出错)
ERR_VM_MODULE_NOT_LINKED (ERR_VM_模块_未_链接)
ERR_WORKER_UNSUPPORTED_EXTENSION (ERR_工作线程_不支持_扩展)
ERR_ZLIB_BINDING_CLOSED (ERR_ZLIB_绑定_关闭)
- OpenSSL Error Codes (OpenSSL 错误代码)
- Time Validity Errors (时间有效性错误)
- Trust or Chain Related Errors (信任或链相关错误)
- Basic Extension Errors (基本扩展错误)
- Name Related Errors (名称相关错误)
- Usage and Policy Errors (使用和策略错误)
- Formatting Errors (格式错误)
CERT_SIGNATURE_FAILURE (证书_签名_失败)
CRL_SIGNATURE_FAILURE (CRL_签名_失败)
ERROR_IN_CERT_NOT_BEFORE_FIELD (证书_NOT_BEFORE_字段_错误)
ERROR_IN_CERT_NOT_AFTER_FIELD (证书_NOT_AFTER_字段_错误)
ERROR_IN_CRL_LAST_UPDATE_FIELD (CRL_LAST_UPDATE_字段_错误)
ERROR_IN_CRL_NEXT_UPDATE_FIELD (CRL_NEXT_UPDATE_字段_错误)
UNABLE_TO_DECRYPT_CERT_SIGNATURE (无法_解密_证书签名)
UNABLE_TO_DECRYPT_CRL_SIGNATURE (无法_解密_CRL签名)
UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY (无法_解码_颁发者公钥)
- Other OpenSSL Errors (其他 OpenSSL 错误)
- 错误
-
Index (索引)
- 断言测试
- 异步上下文跟踪
- 异步钩子
- Buffer(缓冲区)
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入器 API
- 子进程
- 集群
- 命令行选项
- Console(控制台)
- Crypto(加密)
- Debugger(调试器)
- 已弃用的 API
- 诊断通道
- DNS
- Domain(域)
- 错误
- Events(事件)
- 文件系统
- 全局变量
- HTTP
- HTTP/2
- HTTPS
- Inspector(检查器)
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:包
- 模块:TypeScript
- Net(网络)
- OS(操作系统)
- Path(路径)
- 性能钩子
- 权限
- Process(进程)
- Punycode
- 查询字符串
- Readline(逐行读取)
- REPL
- Report(报告)
- 单执行文件应用程序
- SQLite
- Stream(流)
- String decoder(字符串解码器)
- 测试运行器
- Timers(定时器)
- TLS/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- Utilities(实用工具)
- V8
- VM(虚拟机)
- WASI
- Web Crypto API
- Web Streams API
- Worker threads(工作线程)
- Zlib
- Other versions (其他版本)
- Options (选项)
Errors# (错误# )
Applications running in Node.js will generally experience the following categories of errors (在 Node.js 中运行的应用程序通常会遇到以下几类错误)
- Standard JavaScript errors such as <EvalError>, <SyntaxError>, <RangeError>, <ReferenceError>, <TypeError>, and <URIError>. (标准的 JavaScript 错误,例如 <EvalError>、<SyntaxError>、<RangeError>、<ReferenceError>、<TypeError> 和 <URIError>。)
- Standard
DOMException
s. (标准的DOMException
。) - System errors triggered by underlying operating system constraints such as attempting to open a file that does not exist or attempting to send data over a closed socket. (由底层操作系统约束触发的系统错误,例如尝试打开不存在的文件或尝试通过关闭的套接字发送数据。)
AssertionError
s are a special class of error that can be triggered when Node.js detects an exceptional logic violation that should never occur. These are raised typically by thenode:assert
module. (AssertionError
是一种特殊的错误类,当 Node.js 检测到不应该发生的异常逻辑违规时,可以触发该错误。这些通常由node:assert
模块引发。)- User-specified errors triggered by application code. (由应用程序代码触发的,用户指定的错误。)
All JavaScript and system errors raised by Node.js inherit from, or are instances of, the standard JavaScript <Error> class and are guaranteed to provide at least the properties available on that class. (Node.js 引发的所有 JavaScript 和系统错误都继承自或属于标准 JavaScript <Error> 类,并且保证提供至少该类可用的属性。)
The error.message
property of errors raised by Node.js may be changed in any versions. Use error.code
to identify an error instead. For a DOMException
, use domException.name
to identify its type. (Node.js 引发的错误的 error.message
属性可能在任何版本中更改。请改用 error.code
来识别错误。对于 DOMException
,请使用 domException.name
来识别其类型。)
Error propagation and interception# (错误传播和拦截# )
Node.js supports several mechanisms for propagating and handling errors that occur while an application is running. How these errors are reported and handled depends entirely on the type of Error
and the style of the API that is called. (Node.js 支持多种机制来传播和处理应用程序运行时发生的错误。这些错误如何报告和处理完全取决于 Error
的类型和调用的 API 的风格。)
All JavaScript errors are handled as exceptions that immediately generate and throw an error using the standard JavaScript throw
mechanism. These are handled using the try…catch
construct provided by the JavaScript language. (所有 JavaScript 错误都作为异常处理,这些异常使用标准的 JavaScript throw
机制立即生成并抛出错误。这些错误使用 JavaScript 语言提供的 try…catch
构造来处理。)
// Throws with a ReferenceError because z is not defined.
try {
const m = 1;
const n = m + z;
} catch (err) {
// Handle the error here.
}
Any use of the JavaScript throw
mechanism will raise an exception that must be handled or the Node.js process will exit immediately. (任何使用 JavaScript throw
机制都会引发一个必须处理的异常,否则 Node.js 进程将立即退出。)
With few exceptions, Synchronous APIs (any blocking method that does not return a <Promise> nor accept a callback
function, such as fs.readFileSync
), will use throw
to report errors. (除了少数例外,同步 API (任何不返回 <Promise> 也不接受 callback
函数的阻塞方法,例如 fs.readFileSync
) 将使用 throw
来报告错误。)
Errors that occur within Asynchronous APIs may be reported in multiple ways (在异步 API 中发生的错误可以通过多种方式报告)
-
Some asynchronous methods returns a <Promise>, you should always take into account that it might be rejected. See
--unhandled-rejections
flag for how the process will react to an unhandled promise rejection. (一些异步方法返回 <Promise>,你应该始终考虑到它可能会被拒绝。有关进程将如何响应未处理的 Promise 拒绝,请参阅--unhandled-rejections
标志。)const fs = require('node:fs/promises'); (async () => { let data; try { data = await fs.readFile('a file that does not exist'); } catch (err) { console.error('There was an error reading the file!', err); return; } // Otherwise handle the data })();
-
Most asynchronous methods that accept a
callback
function will accept anError
object passed as the first argument to that function. If that first argument is notnull
and is an instance ofError
, then an error occurred that should be handled. (大多数接受callback
函数的异步方法将接受作为该函数的第一个参数传递的Error
对象。如果第一个参数不是null
并且是Error
的实例,则发生了应该处理的错误。)const fs = require('node:fs'); fs.readFile('a file that does not exist', (err, data) => { if (err) { console.error('There was an error reading the file!', err); return; } // Otherwise handle the data });
-
When an asynchronous method is called on an object that is an
EventEmitter
, errors can be routed to that object's'error'
event. (当在作为EventEmitter
的对象上调用异步方法时,错误可以路由到该对象的'error'
事件。)const net = require('node:net'); const connection = net.connect('localhost'); // Adding an 'error' event handler to a stream: connection.on('error', (err) => { // If the connection is reset by the server, or if it can't // connect at all, or on any sort of error encountered by // the connection, the error will be sent here. console.error(err); }); connection.pipe(process.stdout);
-
A handful of typically asynchronous methods in the Node.js API may still use the
throw
mechanism to raise exceptions that must be handled usingtry…catch
. There is no comprehensive list of such methods; please refer to the documentation of each method to determine the appropriate error handling mechanism required. (Node.js API 中的少数典型的异步方法可能仍然使用throw
机制来引发必须使用try…catch
处理的异常。没有此类方法的完整列表;请参阅每个方法的文档以确定所需的适当错误处理机制。)
The use of the 'error'
event mechanism is most common for stream-based and event emitter-based APIs, which themselves represent a series of asynchronous operations over time (as opposed to a single operation that may pass or fail). ('error'
事件机制的使用对于 基于流的 和 基于事件发射器的 API 最为常见,它们本身代表了一系列随时间推移的异步操作(而不是可能成功或失败的单个操作)。)
For all EventEmitter
objects, if an 'error'
event handler is not provided, the error will be thrown, causing the Node.js process to report an uncaught exception and crash unless either: a handler has been registered for the 'uncaughtException'
event, or the deprecated node:domain
module is used. (对于所有 EventEmitter
对象,如果没有提供 'error'
事件处理程序,则会抛出该错误,导致 Node.js 进程报告未捕获的异常并崩溃,除非:已为 'uncaughtException'
事件注册了处理程序,或者使用了已弃用的 node:domain
模块。)
const EventEmitter = require('node:events');
const ee = new EventEmitter();
setImmediate(() => {
// This will crash the process because no 'error' event
// handler has been added.
ee.emit('error', new Error('This will crash'));
});
Errors generated in this way cannot be intercepted using try…catch
as they are thrown after the calling code has already exited. (以这种方式生成的错误无法使用 try…catch
拦截,因为它们是在调用代码已经退出之后抛出的。)
Developers must refer to the documentation for each method to determine exactly how errors raised by those methods are propagated. (开发人员必须参考每个方法的文档,以准确确定这些方法引发的错误是如何传播的。)
Class: Error
# (类:Error
# )
A generic JavaScript <Error> object that does not denote any specific circumstance of why the error occurred. Error
objects capture a "stack trace" detailing the point in the code at which the Error
was instantiated, and may provide a text description of the error. (一个通用的 JavaScript <Error> 对象,不表示错误发生的任何具体情况。Error
对象捕获一个“堆栈跟踪”,详细说明了在代码中实例化 Error
的位置,并且可以提供错误的文本描述。)
All errors generated by Node.js, including all system and JavaScript errors, will either be instances of, or inherit from, the Error
class. (Node.js 生成的所有错误,包括所有系统和 JavaScript 错误,都将是 Error
类的实例或继承自 Error
类。)
new Error(message[, options])
# (new Error(message[, options])
# )
Creates a new Error
object and sets the error.message
property to the provided text message. If an object is passed as message
, the text message is generated by calling String(message)
. If the cause
option is provided, it is assigned to the error.cause
property. The error.stack
property will represent the point in the code at which new Error()
was called. Stack traces are dependent on V8's stack trace API. Stack traces extend only to either (a) the beginning of synchronous code execution, or (b) the number of frames given by the property Error.stackTraceLimit
, whichever is smaller. (创建一个新的 Error
对象并将 error.message
属性设置为提供的文本消息。如果将对象作为 message
传递,则通过调用 String(message)
生成文本消息。如果提供了 cause
选项,则将其分配给 error.cause
属性。error.stack
属性将表示在代码中调用 new Error()
的位置。堆栈跟踪依赖于 V8 的堆栈跟踪 API。堆栈跟踪仅扩展到 (a) 同步代码执行的开始处,或 (b) 属性 Error.stackTraceLimit
给出的帧数,以较小者为准。)
Error.captureStackTrace(targetObject[, constructorOpt])
# (Error.captureStackTrace(targetObject[, constructorOpt])
# )
targetObject
<Object>constructorOpt
<Function>
在 targetObject
上创建一个 .stack
属性,当访问该属性时,它会返回一个字符串,表示调用 Error.captureStackTrace()
的代码位置。
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
跟踪的第一行将以 ${myObject.name}: ${myObject.message}
为前缀。
可选的 constructorOpt
参数接受一个函数。 如果给定,则所有高于 constructorOpt
的帧(包括 constructorOpt
)都将从生成的堆栈跟踪中省略。
constructorOpt
参数对于向用户隐藏错误生成的实现细节很有用。 例如
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Error.stackTraceLimit
#
Error.stackTraceLimit
属性指定堆栈跟踪收集的堆栈帧数(无论是由 new Error().stack
还是 Error.captureStackTrace(obj)
生成)。
默认值为 10
,但可以设置为任何有效的 JavaScript 数字。 更改将影响在值更改后捕获的任何堆栈跟踪。
如果设置为非数字值或设置为负数,则堆栈跟踪将不捕获任何帧。
error.cause
#
如果存在,error.cause
属性是 Error
的根本原因。 它用于捕获错误并抛出具有不同消息或代码的新错误,以便仍然可以访问原始错误。
通常通过调用 new Error(message, { cause })
来设置 error.cause
属性。 如果未提供 cause
选项,则构造函数不会设置它。
此属性允许错误被链接。 序列化 Error
对象时,如果设置了 util.inspect()
,则它会递归地序列化 error.cause
。
const cause = new Error('The remote HTTP server responded with a 500 status');
const symptom = new Error('The message failed to send', { cause });
console.log(symptom);
// Prints:
// Error: The message failed to send
// at REPL2:1:17
// at Script.runInThisContext (node:vm:130:12)
// ... 7 lines matching cause stack trace ...
// at [_line] [as _line] (node:internal/readline/interface:886:18) {
// [cause]: Error: The remote HTTP server responded with a 500 status
// at REPL1:1:15
// at Script.runInThisContext (node:vm:130:12)
// at REPLServer.defaultEval (node:repl:574:29)
// at bound (node:domain:426:15)
// at REPLServer.runBound [as eval] (node:domain:437:12)
// at REPLServer.onLine (node:repl:902:10)
// at REPLServer.emit (node:events:549:35)
// at REPLServer.emit (node:domain:482:12)
// at [_onLine] [as _onLine] (node:internal/readline/interface:425:12)
// at [_line] [as _line] (node:internal/readline/interface:886:18)
error.code
#
error.code
属性是一个字符串标签,用于标识错误的类型。 error.code
是标识错误的最稳定方法。 它只会更改 Node.js 的主要版本之间。 相比之下,error.message
字符串可能会在 Node.js 的任何版本之间更改。 有关特定代码的详细信息,请参阅 Node.js 错误代码。
error.message
#
error.message
属性是由调用 new Error(message)
设置的错误的字符串描述。 传递给构造函数的 message
也会出现在 Error
的堆栈跟踪的第一行中,但是在此属性更改后更改 Error
对象可能不会更改堆栈跟踪的第一行(例如,在更改此属性之前读取 error.stack
时)。
const err = new Error('The message');
console.error(err.message);
// Prints: The message
error.stack
#
error.stack
属性是一个字符串,描述了实例化 Error
的代码中的位置。
Error: Things keep happening!
at /home/gbusey/file.js:525:2
at Frobnicator.refrobulate (/home/gbusey/business-logic.js:424:21)
at Actor.<anonymous> (/home/gbusey/actors.js:400:8)
at increaseSynergy (/home/gbusey/actors.js:701:6)
第一行的格式为 <错误类名>: <错误消息>
,后跟一系列堆栈帧(每行以 "at " 开头)。 每个帧描述了导致生成错误的的代码中的调用站点。 V8 尝试显示每个函数的名称(通过变量名、函数名或对象方法名),但有时它无法找到合适的名称。 如果 V8 无法确定函数的名称,则只会显示该帧的位置信息。 否则,将显示确定的函数名称,并在括号中附加位置信息。
帧仅为 JavaScript 函数生成。 例如,如果执行同步地通过一个名为 cheetahify
的 C++ 插件函数,该函数本身调用一个 JavaScript 函数,则表示 cheetahify
调用的帧将不会出现在堆栈跟踪中。
const cheetahify = require('./native-binding.node');
function makeFaster() {
// `cheetahify()` *synchronously* calls speedy.
cheetahify(function speedy() {
throw new Error('oh no!');
});
}
makeFaster();
// will throw:
// /home/gbusey/file.js:6
// throw new Error('oh no!');
// ^
// Error: oh no!
// at speedy (/home/gbusey/file.js:6:11)
// at makeFaster (/home/gbusey/file.js:5:3)
// at Object.<anonymous> (/home/gbusey/file.js:10:1)
// at Module._compile (module.js:456:26)
// at Object.Module._extensions..js (module.js:474:10)
// at Module.load (module.js:356:32)
// at Function.Module._load (module.js:312:12)
// at Function.Module.runMain (module.js:497:10)
// at startup (node.js:119:16)
// at node.js:906:3
位置信息将是以下之一
native
,如果帧表示 V8 内部的调用(如[].forEach
)。plain-filename.js:line:column
,如果帧表示 Node.js 内部的调用。/absolute/path/to/file.js:line:column
,如果帧表示用户程序(使用 CommonJS 模块系统)或其依赖项中的调用。<传输协议>:///url/to/module/file.mjs:line:column
,如果帧表示用户程序(使用 ES 模块系统)或其依赖项中的调用。
表示堆栈跟踪的字符串在访问 error.stack
属性时会被懒加载生成。
堆栈跟踪捕获的帧数受 Error.stackTraceLimit
或当前事件循环周期中可用帧数中较小者的限制。
类: AssertionError
#
- 继承自: <errors.Error>
表示断言失败。 有关详细信息,请参阅 类: assert.AssertionError
。
类: RangeError
#
- 继承自: <errors.Error>
表示提供的参数不在函数的可以接受的值的集合或范围内;无论是数值范围,还是给定的函数参数的选项之外。
require('node:net').connect(-1);
// Throws "RangeError: "port" option should be >= 0 and < 65536: -1"
Node.js 将立即生成并抛出 RangeError
实例,作为参数验证的一种形式。
类: ReferenceError
#
- 继承自: <errors.Error>
表示尝试访问未定义的变量。 此类错误通常表示代码中的拼写错误,或者程序已损坏。
虽然客户端代码可以生成和传播这些错误,但实际上,只有 V8 才会这样做。
doesNotExist;
// Throws ReferenceError, doesNotExist is not a variable in this program.
除非应用程序正在动态生成和运行代码,否则 ReferenceError
实例表示代码或其依赖项中的错误。
类: SyntaxError
#
- 继承自: <errors.Error>
表示程序不是有效的 JavaScript。 这些错误只能由于代码求值而生成和传播。 代码求值可能会因 eval
、Function
、require
或 vm 而发生。 这些错误几乎总是表明程序已损坏。
try {
require('node:vm').runInThisContext('binary ! isNotOk');
} catch (err) {
// 'err' will be a SyntaxError.
}
SyntaxError
实例在其创建的上下文中是不可恢复的——它们只能被其他上下文捕获。
类: SystemError
#
- 继承自: <errors.Error>
当异常发生在运行时环境中时,Node.js 会生成系统错误。 这些通常发生在应用程序违反操作系统约束时。 例如,如果应用程序尝试读取不存在的文件,则会发生系统错误。
address
<string> 如果存在,则表示网络连接失败的地址code
<string> 字符串错误代码dest
<string> 如果存在,则表示报告文件系统错误时的文件路径目标errno
<number> 系统提供的错误号info
<Object> 如果存在,则表示有关错误情况的额外详细信息message
<string> 系统提供的、人类可读的错误描述path
<string> 如果存在,则表示报告文件系统错误时的文件路径port
<number> 如果存在,则表示不可用的网络连接端口syscall
<string> 触发错误的系统调用的名称
error.errno
#
error.errno
属性是一个负数,对应于 libuv Error handling
中定义的错误代码。
在 Windows 上,系统提供的错误号将由 libuv 规范化。
要获取错误代码的字符串表示形式,请使用 util.getSystemErrorName(error.errno)
。
常见系统错误#
这是编写 Node.js 程序时常见的系统错误列表。 有关完整的列表,请参阅 errno
(3) 手册页。
-
EACCES
(权限被拒绝):尝试以文件访问权限禁止的方式访问文件。 -
EADDRINUSE
(地址已被占用):试图将服务器(net
、http
或https
)绑定到本地地址失败,原因是本地系统上的另一个服务器已占用该地址。 -
ECONNREFUSED
(连接被拒绝):由于目标机器主动拒绝连接,因此无法建立连接。 这通常是由于尝试连接到外地主机上未激活的服务造成的。 -
ECONNRESET
(连接被对等方重置):连接被对等方强制关闭。 这通常是由于超时或重新启动导致远程套接字上的连接丢失。 常见于http
和net
模块中。 -
EEXIST
(文件已存在):现有文件是需要目标不存在的操作的目标。 -
EISDIR
(是一个目录):某个操作需要一个文件,但给定的路径名是一个目录。 -
EMFILE
(系统中打开的文件过多):系统上允许的最大 文件描述符 数量已达到,并且在至少关闭一个文件描述符之前,无法满足对另一个描述符的请求。 当并行一次打开许多文件时,尤其是在系统(特别是 macOS)上,进程的文件描述符限制较低时,会遇到此问题。 要纠正较低的限制,请在将运行 Node.js 进程的同一 shell 中运行ulimit -n 2048
。 -
ENOENT
(没有这样的文件或目录):通常由fs
操作引发,以指示指定的路径名的组成部分不存在。 给定路径找不到任何实体(文件或目录)。 -
ENOTDIR
(不是目录):给定路径名的组成部分存在,但不是预期的目录。 通常由fs.readdir
引发。 -
ENOTEMPTY
(目录不为空):包含条目的目录是需要空目录的操作的目标,通常是fs.unlink
。 -
ENOTFOUND
(DNS 查找失败):表示EAI_NODATA
或EAI_NONAME
的 DNS 故障。 这不是标准的 POSIX 错误。 -
EPERM
(不允许操作):尝试执行需要提升的权限的操作。 -
EPIPE
(管道损坏):在管道、套接字或 FIFO 上进行写入,但没有进程来读取数据。 常见于net
和http
层,表明要写入的流的远程端已关闭。 -
ETIMEDOUT
(操作超时):连接或发送请求失败,因为连接方在一段时间后未正确响应。 通常由http
或net
遇到。 通常表明未正确调用socket.end()
。
类: TypeError
#
- 继承自 <errors.Error>
表示提供的参数不是允许的类型。 例如,将函数传递给期望字符串的参数将是 TypeError
。
require('node:url').parse(() => { });
// Throws TypeError, since it expected a string.
Node.js 将立即生成并抛出 TypeError
实例,作为参数验证的一种形式。
异常与错误#
JavaScript 异常是一个值,该值作为无效操作的结果或作为 throw
语句的目标抛出。 虽然不需要这些值是 Error
的实例或继承自 Error
的类,但 Node.js 或 JavaScript 运行时抛出的所有异常都将是 Error
的实例。
某些异常在 JavaScript 层是无法恢复的。 此类异常将始终导致 Node.js 进程崩溃。 示例包括 C++ 层中的 assert()
检查或 abort()
调用。
OpenSSL 错误#
源自 crypto
或 tls
的错误属于 Error
类,除了标准的 .code
和 .message
属性外,还可能具有一些额外的 OpenSSL 特定的属性。
error.opensslErrorStack
#
一个错误数组,可以提供 OpenSSL 库中错误来源的上下文。
error.function
#
错误来源的 OpenSSL 函数。
error.library
#
错误来源的 OpenSSL 库。
Node.js 错误代码#
ABORT_ERR
#
当操作已中止时使用(通常使用 AbortController
)。
未使用 AbortSignal
的 API 通常不会引发带有此代码的错误。
此代码不使用常规的 ERR_*
约定 Node.js 错误使用,以便与 Web 平台的 AbortError
兼容。
ERR_AMBIGUOUS_ARGUMENT
#
函数参数以一种表明可能误解函数签名的方式使用。 当 assert.throws(block, message)
中的 message
参数与 block
抛出的错误消息匹配时,node:assert
模块会抛出此错误,因为该用法表明用户认为 message
是预期的消息,而不是如果 block
不抛出 AssertionError
将显示的消息。
ERR_BUFFER_CONTEXT_NOT_AVAILABLE
#
尝试从插件或嵌入器代码创建一个 Node.js Buffer
实例,同时在与 Node.js 实例不关联的 JS 引擎上下文中。 传递给 Buffer
方法的数据将在该方法返回时被释放。
遇到此错误时,创建 Buffer
实例的可能替代方法是创建普通的 Uint8Array
,它仅在结果对象的原型中有所不同。 Uint8Array
通常在所有 Node.js 核心 API 中被接受,其中 Buffer
被接受; 它们在所有上下文中都可用。
ERR_CONTEXT_NOT_INITIALIZED
#
传递到 API 的 vm 上下文尚未初始化。 这可能发生在上下文创建期间发生错误(并被捕获)时,例如,当上下文创建期间分配失败或达到最大调用堆栈大小时。
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED
#
请求了一个 OpenSSL 引擎(例如,通过 clientCertEngine
或 privateKeyEngine
TLS 选项),但使用的 OpenSSL 版本不支持该引擎,这可能是由于编译时标志 OPENSSL_NO_ENGINE
导致的。
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY
#
传递给 crypto.ECDH()
类的 computeSecret()
方法的 key
参数的值无效。 这意味着公钥位于椭圆曲线之外。
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED
#
Node.js 是在没有 scrypt
支持的情况下编译的。 使用官方发布的二进制文件是不可能的,但使用自定义构建(包括发行版构建)可能会发生这种情况。
ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH
#
使用长度不同的 Buffer
、TypedArray
或 DataView
参数调用了 crypto.timingSafeEqual()
。
ERR_DOMAIN_CALLBACK_NOT_AVAILABLE
#
node:domain
模块不可用,因为它无法建立所需的错误处理钩子,因为在较早的时间点调用了 process.setUncaughtExceptionCaptureCallback()
。
ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE
#
无法调用 process.setUncaughtExceptionCaptureCallback()
,因为 node:domain
模块已在较早的时间点加载。
堆栈跟踪被扩展为包括加载 node:domain
模块的时间点。
ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION
#
无法调用 v8.startupSnapshot.setDeserializeMainFunction()
,因为它之前已被调用。
ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE
#
JS 执行上下文未与 Node.js 环境关联。 当 Node.js 用作嵌入式库并且某些 JS 引擎的钩子未正确设置时,可能会发生这种情况。
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH
#
传递给 http2.getUnpackedSettings()
API 的输入 Buffer
和 Uint8Array
实例的长度必须是六的倍数。
ERR_HTTP2_MAX_PENDING_SETTINGS_ACK
#
每当将 HTTP/2 SETTINGS
帧发送到连接的对端时,都需要对端发送一个确认,表明它已收到并应用了新的 SETTINGS
。 默认情况下,在任何给定时间最多可以发送未确认的 SETTINGS
帧的最大数量。 当达到该限制时,将使用此错误代码。
ERR_HTTP2_SEND_FILE_NOSEEK
#
尝试使用 Http2Stream.prototype.responseWithFile()
API 发送非普通文件,但提供了 offset
或 length
选项。
ERR_HTTP2_TRAILERS_NOT_READY
#
在 Http2Stream
对象上发出 'wantTrailers'
事件后,才能调用 http2stream.sendTrailers()
方法。 只有为 Http2Stream
设置 waitForTrailers
选项时,才会发出 'wantTrailers'
事件。
ERR_INPUT_TYPE_NOT_ALLOWED
#
使用了 --input-type
标志来尝试执行文件。 此标志只能与通过 --eval
、--print
或 STDIN
的输入一起使用。
ERR_INSPECTOR_ALREADY_ACTIVATED
#
在使用 node:inspector
模块时,尝试在 inspector 已经开始监听端口时激活它。 在不同的地址上激活它之前,请使用 inspector.close()
。
ERR_INTERNAL_ASSERTION
#
Node.js 中存在错误或不正确地使用了 Node.js 内部构件。 要修复此错误,请在 https://github.com/nodejs/node/issues 上提出问题。
ERR_INVALID_FILE_URL_HOST
#
使用 file:
URL 的 Node.js API(例如 fs
模块中的某些函数)遇到了具有不兼容主机的 file URL。 这种情况只可能发生在 Unix-like 系统上,其中只支持 localhost
或空主机。
ERR_INVALID_FILE_URL_PATH
#
使用 file:
URL 的 Node.js API(例如 fs
模块中的某些函数)遇到了具有不兼容路径的 file URL。 确定是否可以使用路径的确切语义取决于平台。
ERR_INVALID_HANDLE_TYPE
#
尝试通过 IPC 通信通道向子进程发送不支持的 "handle"。 有关更多信息,请参阅 subprocess.send()
和 process.send()
。
ERR_INVALID_SYNC_FORK_INPUT
#
Buffer
、TypedArray
、DataView
或 string
作为 stdio 输入提供给异步 fork。 有关更多信息,请参阅 child_process
模块的文档。
ERR_INVALID_THIS
#
使用不兼容的 this
值调用了 Node.js API 函数。
const urlSearchParams = new URLSearchParams('foo=bar&baz=new');
const buf = Buffer.alloc(1);
urlSearchParams.has.call(buf, 'foo');
// Throws a TypeError with code 'ERR_INVALID_THIS'
ERR_INVALID_TUPLE
#
提供给 WHATWG URLSearchParams
构造函数的 iterable
中的元素不代表 [name, value]
元组 – 也就是说,如果元素不可迭代,或者不包含正好两个元素。
ERR_INVALID_URL
#
将无效的 URL 传递给 WHATWG URL
构造函数或要解析的旧版 url.parse()
。 抛出的错误对象通常有一个额外的属性 'input'
,其中包含无法解析的 URL。
ERR_INVALID_URL_PATTERN
#
将无效的 URLPattern 传递给 WHATWG [URLPattern
constructor][new URLPattern(input)
] 进行解析。
ERR_INVALID_URL_SCHEME
#
尝试使用与特定目的不兼容的方案(协议)的 URL。 它仅在 WHATWG URL API 支持中的 fs
模块中使用(该模块仅接受具有 'file'
方案的 URL),但将来也可能在其他 Node.js API 中使用。
ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE
#
发布到 MessagePort
的消息无法在目标 vm Context
中反序列化。 并非所有的 Node.js 对象都可以成功地在任何上下文中实例化,并且尝试使用 postMessage()
传输它们在这种情况下可能会在接收端失败。
ERR_MISSING_ARGS
#
未传递 Node.js API 的必需参数。 这仅用于严格遵守 API 规范(在某些情况下,API 可能会接受 func(undefined)
但不接受 func()
)。 在大多数原生 Node.js API 中,func(undefined)
和 func()
被视为相同,并且可以使用 ERR_INVALID_ARG_TYPE
错误代码代替。
ERR_MISSING_PLATFORM_FOR_WORKER
#
此 Node.js 实例使用的 V8 平台不支持创建 Workers。 这是由于缺少对 Workers 的嵌入器支持造成的。 特别是,标准版本的 Node.js 不会发生此错误。
ERR_NAPI_INVALID_DATAVIEW_ARGS
#
调用 napi_create_dataview()
时,给定的 offset
超出了数据视图的边界,或者 offset + length
大于给定 buffer
的长度。
ERR_NAPI_INVALID_TYPEDARRAY_LENGTH
#
调用 napi_create_typedarray()
时,(length * size_of_element) + byte_offset
大于给定 buffer
的长度。
ERR_PACKAGE_PATH_NOT_EXPORTED
#
package.json
"exports"
字段未导出请求的子路径。 由于导出是封装的,除非使用绝对 URL,否则无法通过包解析导入未导出的私有内部模块。
ERR_PARSE_ARGS_INVALID_OPTION_VALUE
#
当 strict
设置为 true
时,如果为 <boolean> 类型的选项提供 <string> 值,或者为 <string> 类型的选项提供 <boolean> 值,则由 util.parseArgs()
抛出。
ERR_PROTO_ACCESS
#
使用 --disable-proto=throw
禁止访问 Object.prototype.__proto__
。 应该使用 Object.getPrototypeOf
和 Object.setPrototypeOf
来获取和设置对象的原型。
ERR_REQUIRE_ASYNC_MODULE
#
当尝试 require()
ES 模块 时,该模块是异步的。 也就是说,它包含顶层 await。
要查看顶层 await 的位置,请使用 --experimental-print-required-tla
(这会在寻找顶层 await 之前执行模块)。
ERR_REQUIRE_CYCLE_MODULE
#
当尝试 require()
ES 模块 时,CommonJS 到 ESM 或 ESM 到 CommonJS 的边缘参与到一个直接循环中。 这是不允许的,因为 ES 模块在已经被求值时不能被求值。
要避免循环,循环中涉及的 require()
调用不应发生在 ES 模块(通过 createRequire()
)或 CommonJS 模块的顶层,而应在内部函数中延迟执行。
ERR_REQUIRE_ESM
#
尝试 require()
一个 ES 模块。
自 require()
现在支持加载同步 ES 模块以来,此错误已被弃用。当 require()
遇到包含顶层 await
的 ES 模块时,它将抛出 ERR_REQUIRE_ASYNC_MODULE
错误。
ERR_SERVER_ALREADY_LISTEN
#
在 net.Server
已经监听时调用了 server.listen()
方法。这适用于 net.Server
的所有实例,包括 HTTP、HTTPS 和 HTTP/2 Server
实例。
ERR_SERVER_NOT_RUNNING
#
当 net.Server
未运行时,调用了 server.close()
方法。这适用于 net.Server
的所有实例,包括 HTTP、HTTPS 和 HTTP/2 Server
实例。
ERR_SOCKET_BAD_BUFFER_SIZE
#
在 dgram.createSocket()
中,recvBufferSize
或 sendBufferSize
选项传递了无效(负数)的大小。
ERR_SOURCE_PHASE_NOT_DEFINED
#
提供的模块导入不为源阶段导入语法 import source x from 'x'
或 import.source(x)
提供源阶段导入表示。
ERR_STREAM_WRAP
#
如果 Socket 上设置了字符串解码器,或者解码器处于 objectMode
中,则防止中止。
const Socket = require('node:net').Socket;
const instance = new Socket();
instance.setEncoding('utf8');
ERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLS
#
如果在 TLS 选项同时包含 ALPNProtocols
和 ALPNCallback
时创建 TLSServer
,则会抛出此错误。这些选项是互斥的。
ERR_TLS_CERT_ALTNAME_FORMAT
#
如果用户提供的 subjectaltname
属性违反了编码规则,checkServerIdentity
会抛出此错误。Node.js 本身生成的证书对象始终符合编码规则,因此永远不会导致此错误。
ERR_TLS_DH_PARAM_SIZE
#
在使用 TLS 时,为 Diffie-Hellman (DH
) 密钥协商协议提供的参数太小。默认情况下,密钥长度必须大于或等于 1024 位才能避免漏洞,尽管强烈建议使用 2048 位或更大的位数以获得更强的安全性。
ERR_TLS_PROTOCOL_VERSION_CONFLICT
#
尝试设置 TLS 协议 minVersion
或 maxVersion
与显式设置 secureProtocol
的尝试相冲突。使用其中一种机制。
ERR_TRACE_EVENTS_UNAVAILABLE
#
由于 Node.js 是使用 --without-v8-platform
标志编译的,因此无法加载 node:trace_events
模块。
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET
#
process.setUncaughtExceptionCaptureCallback()
被调用了两次,而没有先将回调重置为 null
。
此错误旨在防止意外覆盖从另一个模块注册的回调。
ERR_UNSUPPORTED_DIR_IMPORT
#
不支持 import
目录 URL。而是使用其名称自引用包,并在package.json
文件的"exports"
字段中定义自定义子路径。
import './'; // unsupported
import './index.js'; // supported
import 'package-name'; // supported
ERR_UNSUPPORTED_RESOLVE_REQUEST
#
尝试解析无效的模块引用者。当从 URL 方案不是 file
的模块导入或调用 import.meta.resolve()
时,可能会发生这种情况,其中
try {
// Trying to import the package 'bare-specifier' from a `data:` URL module:
await import('data:text/javascript,import "bare-specifier"');
} catch (e) {
console.log(e.code); // ERR_UNSUPPORTED_RESOLVE_REQUEST
}
ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
#
提供的 TypeScript 语法不受支持。当使用需要使用 类型剥离进行转换的 TypeScript 语法时,可能会发生这种情况。
ERR_VM_MODULE_ALREADY_LINKED
#
尝试链接的模块不符合链接条件,原因如下之一
- 它已被链接(
linkingStatus
为'linked'
) - 它正在被链接(
linkingStatus
为'linking'
) - 此模块的链接失败(
linkingStatus
为'errored'
)
ERR_WEBASSEMBLY_RESPONSE
#
传递给 WebAssembly.compileStreaming
或 WebAssembly.instantiateStreaming
的 Response
不是有效的 WebAssembly 响应。
HPE_HEADER_OVERFLOW
#
接收到太多的 HTTP 标头数据。 为了防止恶意或配置错误的客户端,如果接收到超过 maxHeaderSize
的 HTTP 标头数据,HTTP 解析将中止,而不会创建请求或响应对象,并且会发出带有此代码的 Error
。
HPE_UNEXPECTED_CONTENT_LENGTH
#
服务器同时发送了 Content-Length
标头和 Transfer-Encoding: chunked
。
Transfer-Encoding: chunked
允许服务器为动态生成的内容维护 HTTP 持久连接。 在这种情况下,不能使用 Content-Length
HTTP 标头。
使用 Content-Length
或 Transfer-Encoding: chunked
。
旧版 Node.js 错误代码#
ERR_CRYPTO_HASH_DIGEST_NO_UTF16
#
UTF-16 编码与 hash.digest()
一起使用。 虽然 hash.digest()
方法允许传入一个 encoding
参数,导致该方法返回一个字符串而不是 Buffer
,但不支持 UTF-16 编码(例如 ucs
或 utf16le
)。
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER
#
一个不兼容的选项组合被传递给 crypto.scrypt()
或 crypto.scryptSync()
。 新版本的 Node.js 使用错误代码 ERR_INCOMPATIBLE_OPTION_PAIR
代替,这与其他 API 一致。
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
#
此错误代码已在 Node.js v15.0.0 中被 ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
替换,因为它不再准确,因为现在也存在其他类型的可转移对象。
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
#
需要显式列在 transferList
参数中的对象位于传递给 postMessage()
调用的对象中,但未在该调用的 transferList
中提供。 通常,这是一个 MessagePort
。
在 v15.0.0 之前的 Node.js 版本中,此处使用的错误代码是 ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
。 但是,可转移对象类型的集合已扩展到覆盖比 MessagePort
更多的类型。
ERR_NO_LONGER_SUPPORTED
#
以不支持的方式调用了 Node.js API,例如 Buffer.write(string, encoding, offset[, length])
。
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER
#
在序列化期间遇到一个 SharedArrayBuffer
,其内存不由 JavaScript 引擎或 Node.js 管理。 这样的 SharedArrayBuffer
无法序列化。
只有当原生插件以“外部化”模式创建 SharedArrayBuffer
,或者将现有的 SharedArrayBuffer
放入外部化模式时,才会发生这种情况。
ERR_UNKNOWN_STREAM_TYPE
#
尝试使用未知的 stdout
或 stderr
文件类型启动 Node.js 进程。 此错误通常表示 Node.js 本身存在错误,尽管用户代码可能触发它。