- assert断言
- async_hooks异步钩子
- async_hooks/context异步上下文
- buffer缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process子进程
- cluster集群
- CLI命令行
- console控制台
- Corepack核心包
- crypto加密
- crypto/webcrypto网络加密
- debugger调试器
- deprecation弃用
- dgram数据报
- diagnostics_channel诊断通道
- 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流
- stream/web网络流
- string_decoder字符串解码器
- test测试
- timers定时器
- tls安全传输层
- trace_events跟踪事件
- tty终端
- url网址
- util实用工具
- v8引擎
- vm虚拟机
- wasi网络汇编系统接口
- worker_threads工作线程
- zlib压缩
Node.js v18.6.0 文档
- Node.js 18.6.0
-
►
目录
- Error 错误
- 错误的传播和拦截
Error类AssertionError类RangeError类ReferenceError类SyntaxError类SystemError类TypeError类- 异常与错误
- OpenSSL 错误
- Node.js 错误码
ABORT_ERRERR_AMBIGUOUS_ARGUMENTERR_ARG_NOT_ITERABLEERR_ASSERTIONERR_ASYNC_CALLBACKERR_ASYNC_TYPEERR_BROTLI_COMPRESSION_FAILEDERR_BROTLI_INVALID_PARAMERR_BUFFER_CONTEXT_NOT_AVAILABLEERR_BUFFER_OUT_OF_BOUNDSERR_BUFFER_TOO_LARGEERR_CANNOT_WATCH_SIGINTERR_CHILD_CLOSED_BEFORE_REPLYERR_CHILD_PROCESS_IPC_REQUIREDERR_CHILD_PROCESS_STDIO_MAXBUFFERERR_CLOSED_MESSAGE_PORTERR_CONSOLE_WRITABLE_STREAMERR_CONSTRUCT_CALL_INVALIDERR_CONSTRUCT_CALL_REQUIREDERR_CONTEXT_NOT_INITIALIZEDERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTEDERR_CRYPTO_ECDH_INVALID_FORMATERR_CRYPTO_ECDH_INVALID_PUBLIC_KEYERR_CRYPTO_ENGINE_UNKNOWNERR_CRYPTO_FIPS_FORCEDERR_CRYPTO_FIPS_UNAVAILABLEERR_CRYPTO_HASH_FINALIZEDERR_CRYPTO_HASH_UPDATE_FAILEDERR_CRYPTO_INCOMPATIBLE_KEYERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONSERR_CRYPTO_INITIALIZATION_FAILEDERR_CRYPTO_INVALID_AUTH_TAGERR_CRYPTO_INVALID_COUNTERERR_CRYPTO_INVALID_CURVEERR_CRYPTO_INVALID_DIGESTERR_CRYPTO_INVALID_IVERR_CRYPTO_INVALID_JWKERR_CRYPTO_INVALID_KEY_OBJECT_TYPEERR_CRYPTO_INVALID_KEYLENERR_CRYPTO_INVALID_KEYPAIRERR_CRYPTO_INVALID_KEYTYPEERR_CRYPTO_INVALID_MESSAGELENERR_CRYPTO_INVALID_SCRYPT_PARAMSERR_CRYPTO_INVALID_STATEERR_CRYPTO_INVALID_TAG_LENGTHERR_CRYPTO_JOB_INIT_FAILEDERR_CRYPTO_JWK_UNSUPPORTED_CURVEERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPEERR_CRYPTO_OPERATION_FAILEDERR_CRYPTO_PBKDF2_ERRORERR_CRYPTO_SCRYPT_INVALID_PARAMETERERR_CRYPTO_SCRYPT_NOT_SUPPORTEDERR_CRYPTO_SIGN_KEY_REQUIREDERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTHERR_CRYPTO_UNKNOWN_CIPHERERR_CRYPTO_UNKNOWN_DH_GROUPERR_CRYPTO_UNSUPPORTED_OPERATIONERR_DEBUGGER_ERRORERR_DEBUGGER_STARTUP_ERRORERR_DLOPEN_DISABLEDERR_DLOPEN_FAILEDERR_DIR_CLOSEDERR_DIR_CONCURRENT_OPERATIONERR_DNS_SET_SERVERS_FAILEDERR_DOMAIN_CALLBACK_NOT_AVAILABLEERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTUREERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTIONERR_ENCODING_INVALID_ENCODED_DATAERR_ENCODING_NOT_SUPPORTEDERR_EVAL_ESM_CANNOT_PRINTERR_EVENT_RECURSIONERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLEERR_FALSY_VALUE_REJECTIONERR_FEATURE_UNAVAILABLE_ON_PLATFORMERR_FS_CP_DIR_TO_NON_DIRERR_FS_CP_EEXISTERR_FS_CP_EINVALERR_FS_CP_FIFO_PIPEERR_FS_CP_NON_DIR_TO_DIRERR_FS_CP_SOCKETERR_FS_CP_SYMLINK_TO_SUBDIRECTORYERR_FS_CP_UNKNOWNERR_FS_EISDIRERR_FS_FILE_TOO_LARGEERR_FS_INVALID_SYMLINK_TYPEERR_HTTP_HEADERS_SENTERR_HTTP_INVALID_HEADER_VALUEERR_HTTP_INVALID_STATUS_CODEERR_HTTP_REQUEST_TIMEOUTERR_HTTP_SOCKET_ENCODINGERR_HTTP_TRAILER_INVALIDERR_HTTP2_ALTSVC_INVALID_ORIGINERR_HTTP2_ALTSVC_LENGTHERR_HTTP2_CONNECT_AUTHORITYERR_HTTP2_CONNECT_PATHERR_HTTP2_CONNECT_SCHEMEERR_HTTP2_ERRORERR_HTTP2_GOAWAY_SESSIONERR_HTTP2_HEADER_SINGLE_VALUEERR_HTTP2_HEADERS_AFTER_RESPONDERR_HTTP2_HEADERS_SENTERR_HTTP2_INFO_STATUS_NOT_ALLOWEDERR_HTTP2_INVALID_CONNECTION_HEADERSERR_HTTP2_INVALID_HEADER_VALUEERR_HTTP2_INVALID_INFO_STATUSERR_HTTP2_INVALID_ORIGINERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTHERR_HTTP2_INVALID_PSEUDOHEADERERR_HTTP2_INVALID_SESSIONERR_HTTP2_INVALID_SETTING_VALUEERR_HTTP2_INVALID_STREAMERR_HTTP2_MAX_PENDING_SETTINGS_ACKERR_HTTP2_NESTED_PUSHERR_HTTP2_NO_MEMERR_HTTP2_NO_SOCKET_MANIPULATIONERR_HTTP2_ORIGIN_LENGTHERR_HTTP2_OUT_OF_STREAMSERR_HTTP2_PAYLOAD_FORBIDDENERR_HTTP2_PING_CANCELERR_HTTP2_PING_LENGTHERR_HTTP2_PSEUDOHEADER_NOT_ALLOWEDERR_HTTP2_PUSH_DISABLEDERR_HTTP2_SEND_FILEERR_HTTP2_SEND_FILE_NOSEEKERR_HTTP2_SESSION_ERRORERR_HTTP2_SETTINGS_CANCELERR_HTTP2_SOCKET_BOUNDERR_HTTP2_SOCKET_UNBOUNDERR_HTTP2_STATUS_101ERR_HTTP2_STATUS_INVALIDERR_HTTP2_STREAM_CANCELERR_HTTP2_STREAM_ERRORERR_HTTP2_STREAM_SELF_DEPENDENCYERR_HTTP2_TOO_MANY_INVALID_FRAMESERR_HTTP2_TRAILERS_ALREADY_SENTERR_HTTP2_TRAILERS_NOT_READYERR_HTTP2_UNSUPPORTED_PROTOCOLERR_ILLEGAL_CONSTRUCTORERR_IMPORT_ASSERTION_TYPE_FAILEDERR_IMPORT_ASSERTION_TYPE_MISSINGERR_IMPORT_ASSERTION_TYPE_UNSUPPORTEDERR_INCOMPATIBLE_OPTION_PAIRERR_INPUT_TYPE_NOT_ALLOWEDERR_INSPECTOR_ALREADY_ACTIVATEDERR_INSPECTOR_ALREADY_CONNECTEDERR_INSPECTOR_CLOSEDERR_INSPECTOR_COMMANDERR_INSPECTOR_NOT_ACTIVEERR_INSPECTOR_NOT_AVAILABLEERR_INSPECTOR_NOT_CONNECTEDERR_INSPECTOR_NOT_WORKERERR_INTERNAL_ASSERTIONERR_INVALID_ADDRESS_FAMILYERR_INVALID_ARG_TYPEERR_INVALID_ARG_VALUEERR_INVALID_ASYNC_IDERR_INVALID_BUFFER_SIZEERR_INVALID_CHARERR_INVALID_CURSOR_POSERR_INVALID_FDERR_INVALID_FD_TYPEERR_INVALID_FILE_URL_HOSTERR_INVALID_FILE_URL_PATHERR_INVALID_HANDLE_TYPEERR_INVALID_HTTP_TOKENERR_INVALID_IP_ADDRESSERR_INVALID_MODULEERR_INVALID_MODULE_SPECIFIERERR_INVALID_OBJECT_DEFINE_PROPERTYERR_INVALID_PACKAGE_CONFIGERR_INVALID_PACKAGE_TARGETERR_INVALID_PERFORMANCE_MARKERR_INVALID_PROTOCOLERR_INVALID_REPL_EVAL_CONFIGERR_INVALID_REPL_INPUTERR_INVALID_RETURN_PROPERTYERR_INVALID_RETURN_PROPERTY_VALUEERR_INVALID_RETURN_VALUEERR_INVALID_STATEERR_INVALID_SYNC_FORK_INPUTERR_INVALID_THISERR_INVALID_TRANSFER_OBJECTERR_INVALID_TUPLEERR_INVALID_URIERR_INVALID_URLERR_INVALID_URL_SCHEMEERR_IPC_CHANNEL_CLOSEDERR_IPC_DISCONNECTEDERR_IPC_ONE_PIPEERR_IPC_SYNC_FORKERR_LOADER_CHAIN_INCOMPLETEERR_MANIFEST_ASSERT_INTEGRITYERR_MANIFEST_DEPENDENCY_MISSINGERR_MANIFEST_INTEGRITY_MISMATCHERR_MANIFEST_INVALID_RESOURCE_FIELDERR_MANIFEST_INVALID_SPECIFIERERR_MANIFEST_PARSE_POLICYERR_MANIFEST_TDZERR_MANIFEST_UNKNOWN_ONERRORERR_MEMORY_ALLOCATION_FAILEDERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLEERR_METHOD_NOT_IMPLEMENTEDERR_MISSING_ARGSERR_MISSING_OPTIONERR_MISSING_PASSPHRASEERR_MISSING_PLATFORM_FOR_WORKERERR_MISSING_TRANSFERABLE_IN_TRANSFER_LISTERR_MODULE_NOT_FOUNDERR_MULTIPLE_CALLBACKERR_NAPI_CONS_FUNCTIONERR_NAPI_INVALID_DATAVIEW_ARGSERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENTERR_NAPI_INVALID_TYPEDARRAY_LENGTHERR_NAPI_TSFN_CALL_JSERR_NAPI_TSFN_GET_UNDEFINEDERR_NAPI_TSFN_START_IDLE_LOOPERR_NAPI_TSFN_STOP_IDLE_LOOPERR_NOT_BUILDING_SNAPSHOTERR_NO_CRYPTOERR_NO_ICUERR_NON_CONTEXT_AWARE_DISABLEDERR_OUT_OF_RANGEERR_PACKAGE_IMPORT_NOT_DEFINEDERR_PACKAGE_PATH_NOT_EXPORTEDERR_PARSE_ARGS_INVALID_OPTION_VALUEERR_PARSE_ARGS_UNEXPECTED_POSITIONALERR_PARSE_ARGS_UNKNOWN_OPTIONERR_PERFORMANCE_INVALID_TIMESTAMPERR_PERFORMANCE_MEASURE_INVALID_OPTIONSERR_PROTO_ACCESSERR_REQUIRE_ESMERR_SCRIPT_EXECUTION_INTERRUPTEDERR_SCRIPT_EXECUTION_TIMEOUTERR_SERVER_ALREADY_LISTENERR_SERVER_NOT_RUNNINGERR_SOCKET_ALREADY_BOUNDERR_SOCKET_BAD_BUFFER_SIZEERR_SOCKET_BAD_PORTERR_SOCKET_BAD_TYPEERR_SOCKET_BUFFER_SIZEERR_SOCKET_CLOSEDERR_SOCKET_DGRAM_IS_CONNECTEDERR_SOCKET_DGRAM_NOT_CONNECTEDERR_SOCKET_DGRAM_NOT_RUNNINGERR_SRI_PARSEERR_STREAM_ALREADY_FINISHEDERR_STREAM_CANNOT_PIPEERR_STREAM_DESTROYEDERR_STREAM_NULL_VALUESERR_STREAM_PREMATURE_CLOSEERR_STREAM_PUSH_AFTER_EOFERR_STREAM_UNSHIFT_AFTER_END_EVENTERR_STREAM_WRAPERR_STREAM_WRITE_AFTER_ENDERR_STRING_TOO_LONGERR_SYNTHETICERR_SYSTEM_ERRORERR_TEST_FAILUREERR_TLS_CERT_ALTNAME_FORMATERR_TLS_CERT_ALTNAME_INVALIDERR_TLS_DH_PARAM_SIZEERR_TLS_HANDSHAKE_TIMEOUTERR_TLS_INVALID_CONTEXTERR_TLS_INVALID_PROTOCOL_METHODERR_TLS_INVALID_PROTOCOL_VERSIONERR_TLS_INVALID_STATEERR_TLS_PROTOCOL_VERSION_CONFLICTERR_TLS_PSK_SET_IDENTIY_HINT_FAILEDERR_TLS_RENEGOTIATION_DISABLEDERR_TLS_REQUIRED_SERVER_NAMEERR_TLS_SESSION_ATTACKERR_TLS_SNI_FROM_SERVERERR_TRACE_EVENTS_CATEGORY_REQUIREDERR_TRACE_EVENTS_UNAVAILABLEERR_TRANSFORM_ALREADY_TRANSFORMINGERR_TRANSFORM_WITH_LENGTH_0ERR_TTY_INIT_FAILEDERR_UNAVAILABLE_DURING_EXITERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SETERR_UNESCAPED_CHARACTERSERR_UNHANDLED_ERRORERR_UNKNOWN_BUILTIN_MODULEERR_UNKNOWN_CREDENTIALERR_UNKNOWN_ENCODINGERR_UNKNOWN_FILE_EXTENSIONERR_UNKNOWN_MODULE_FORMATERR_UNKNOWN_SIGNALERR_UNSUPPORTED_DIR_IMPORTERR_UNSUPPORTED_ESM_URL_SCHEMEERR_USE_AFTER_CLOSEERR_VALID_PERFORMANCE_ENTRY_TYPEERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSINGERR_VM_MODULE_ALREADY_LINKEDERR_VM_MODULE_CACHED_DATA_REJECTEDERR_VM_MODULE_CANNOT_CREATE_CACHED_DATAERR_VM_MODULE_DIFFERENT_CONTEXTERR_VM_MODULE_LINK_FAILUREERR_VM_MODULE_NOT_MODULEERR_VM_MODULE_STATUSERR_WASI_ALREADY_STARTEDERR_WASI_NOT_STARTEDERR_WEBASSEMBLY_RESPONSEERR_WORKER_INIT_FAILEDERR_WORKER_INVALID_EXEC_ARGVERR_WORKER_NOT_RUNNINGERR_WORKER_OUT_OF_MEMORYERR_WORKER_PATHERR_WORKER_UNSERIALIZABLE_ERRORERR_WORKER_UNSUPPORTED_OPERATIONERR_ZLIB_INITIALIZATION_FAILEDHPE_HEADER_OVERFLOWHPE_UNEXPECTED_CONTENT_LENGTHMODULE_NOT_FOUND
- 弃用的 Node.js 错误码
ERR_CANNOT_TRANSFER_OBJECTERR_CRYPTO_HASH_DIGEST_NO_UTF16ERR_HTTP2_FRAME_ERRORERR_HTTP2_HEADERS_OBJECTERR_HTTP2_HEADER_REQUIREDERR_HTTP2_INFO_HEADERS_AFTER_RESPONDERR_HTTP2_STREAM_CLOSEDERR_HTTP_INVALID_CHARERR_INDEX_OUT_OF_RANGEERR_INVALID_OPT_VALUEERR_INVALID_OPT_VALUE_ENCODINGERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LISTERR_NAPI_CONS_PROTOTYPE_OBJECTERR_NETWORK_IMPORT_BAD_RESPONSEERR_NETWORK_IMPORT_DISALLOWEDERR_NO_LONGER_SUPPORTEDERR_OPERATION_FAILEDERR_OUTOFMEMORYERR_PARSE_HISTORY_DATAERR_SOCKET_CANNOT_SENDERR_STDERR_CLOSEERR_STDOUT_CLOSEERR_STREAM_READ_NOT_IMPLEMENTEDERR_TLS_RENEGOTIATION_FAILEDERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFERERR_UNKNOWN_STDIN_TYPEERR_UNKNOWN_STREAM_TYPEERR_V8BREAKITERATORERR_VALUE_OUT_OF_RANGEERR_VM_MODULE_NOT_LINKEDERR_VM_MODULE_LINKING_ERROREDERR_WORKER_UNSUPPORTED_EXTENSIONERR_ZLIB_BINDING_CLOSEDERR_CPU_USAGE
- Error 错误
-
►
索引
- assert 断言
- async_hooks 异步钩子
- async_hooks/context 异步上下文
- buffer 缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process 子进程
- cluster 集群
- CLI 命令行
- console 控制台
- Corepack 核心包
- crypto 加密
- crypto/webcrypto 网络加密
- debugger 调试器
- deprecation 弃用
- dgram 数据报
- diagnostics_channel 诊断通道
- 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 流
- stream/web 网络流
- string_decoder 字符串解码器
- test 测试
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
- ► 其他版本
- 搜索
目录
- Error 错误
- 错误的传播和拦截
Error类AssertionError类RangeError类ReferenceError类SyntaxError类SystemError类TypeError类- 异常与错误
- OpenSSL 错误
- Node.js 错误码
ABORT_ERRERR_AMBIGUOUS_ARGUMENTERR_ARG_NOT_ITERABLEERR_ASSERTIONERR_ASYNC_CALLBACKERR_ASYNC_TYPEERR_BROTLI_COMPRESSION_FAILEDERR_BROTLI_INVALID_PARAMERR_BUFFER_CONTEXT_NOT_AVAILABLEERR_BUFFER_OUT_OF_BOUNDSERR_BUFFER_TOO_LARGEERR_CANNOT_WATCH_SIGINTERR_CHILD_CLOSED_BEFORE_REPLYERR_CHILD_PROCESS_IPC_REQUIREDERR_CHILD_PROCESS_STDIO_MAXBUFFERERR_CLOSED_MESSAGE_PORTERR_CONSOLE_WRITABLE_STREAMERR_CONSTRUCT_CALL_INVALIDERR_CONSTRUCT_CALL_REQUIREDERR_CONTEXT_NOT_INITIALIZEDERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTEDERR_CRYPTO_ECDH_INVALID_FORMATERR_CRYPTO_ECDH_INVALID_PUBLIC_KEYERR_CRYPTO_ENGINE_UNKNOWNERR_CRYPTO_FIPS_FORCEDERR_CRYPTO_FIPS_UNAVAILABLEERR_CRYPTO_HASH_FINALIZEDERR_CRYPTO_HASH_UPDATE_FAILEDERR_CRYPTO_INCOMPATIBLE_KEYERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONSERR_CRYPTO_INITIALIZATION_FAILEDERR_CRYPTO_INVALID_AUTH_TAGERR_CRYPTO_INVALID_COUNTERERR_CRYPTO_INVALID_CURVEERR_CRYPTO_INVALID_DIGESTERR_CRYPTO_INVALID_IVERR_CRYPTO_INVALID_JWKERR_CRYPTO_INVALID_KEY_OBJECT_TYPEERR_CRYPTO_INVALID_KEYLENERR_CRYPTO_INVALID_KEYPAIRERR_CRYPTO_INVALID_KEYTYPEERR_CRYPTO_INVALID_MESSAGELENERR_CRYPTO_INVALID_SCRYPT_PARAMSERR_CRYPTO_INVALID_STATEERR_CRYPTO_INVALID_TAG_LENGTHERR_CRYPTO_JOB_INIT_FAILEDERR_CRYPTO_JWK_UNSUPPORTED_CURVEERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPEERR_CRYPTO_OPERATION_FAILEDERR_CRYPTO_PBKDF2_ERRORERR_CRYPTO_SCRYPT_INVALID_PARAMETERERR_CRYPTO_SCRYPT_NOT_SUPPORTEDERR_CRYPTO_SIGN_KEY_REQUIREDERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTHERR_CRYPTO_UNKNOWN_CIPHERERR_CRYPTO_UNKNOWN_DH_GROUPERR_CRYPTO_UNSUPPORTED_OPERATIONERR_DEBUGGER_ERRORERR_DEBUGGER_STARTUP_ERRORERR_DLOPEN_DISABLEDERR_DLOPEN_FAILEDERR_DIR_CLOSEDERR_DIR_CONCURRENT_OPERATIONERR_DNS_SET_SERVERS_FAILEDERR_DOMAIN_CALLBACK_NOT_AVAILABLEERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTUREERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTIONERR_ENCODING_INVALID_ENCODED_DATAERR_ENCODING_NOT_SUPPORTEDERR_EVAL_ESM_CANNOT_PRINTERR_EVENT_RECURSIONERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLEERR_FALSY_VALUE_REJECTIONERR_FEATURE_UNAVAILABLE_ON_PLATFORMERR_FS_CP_DIR_TO_NON_DIRERR_FS_CP_EEXISTERR_FS_CP_EINVALERR_FS_CP_FIFO_PIPEERR_FS_CP_NON_DIR_TO_DIRERR_FS_CP_SOCKETERR_FS_CP_SYMLINK_TO_SUBDIRECTORYERR_FS_CP_UNKNOWNERR_FS_EISDIRERR_FS_FILE_TOO_LARGEERR_FS_INVALID_SYMLINK_TYPEERR_HTTP_HEADERS_SENTERR_HTTP_INVALID_HEADER_VALUEERR_HTTP_INVALID_STATUS_CODEERR_HTTP_REQUEST_TIMEOUTERR_HTTP_SOCKET_ENCODINGERR_HTTP_TRAILER_INVALIDERR_HTTP2_ALTSVC_INVALID_ORIGINERR_HTTP2_ALTSVC_LENGTHERR_HTTP2_CONNECT_AUTHORITYERR_HTTP2_CONNECT_PATHERR_HTTP2_CONNECT_SCHEMEERR_HTTP2_ERRORERR_HTTP2_GOAWAY_SESSIONERR_HTTP2_HEADER_SINGLE_VALUEERR_HTTP2_HEADERS_AFTER_RESPONDERR_HTTP2_HEADERS_SENTERR_HTTP2_INFO_STATUS_NOT_ALLOWEDERR_HTTP2_INVALID_CONNECTION_HEADERSERR_HTTP2_INVALID_HEADER_VALUEERR_HTTP2_INVALID_INFO_STATUSERR_HTTP2_INVALID_ORIGINERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTHERR_HTTP2_INVALID_PSEUDOHEADERERR_HTTP2_INVALID_SESSIONERR_HTTP2_INVALID_SETTING_VALUEERR_HTTP2_INVALID_STREAMERR_HTTP2_MAX_PENDING_SETTINGS_ACKERR_HTTP2_NESTED_PUSHERR_HTTP2_NO_MEMERR_HTTP2_NO_SOCKET_MANIPULATIONERR_HTTP2_ORIGIN_LENGTHERR_HTTP2_OUT_OF_STREAMSERR_HTTP2_PAYLOAD_FORBIDDENERR_HTTP2_PING_CANCELERR_HTTP2_PING_LENGTHERR_HTTP2_PSEUDOHEADER_NOT_ALLOWEDERR_HTTP2_PUSH_DISABLEDERR_HTTP2_SEND_FILEERR_HTTP2_SEND_FILE_NOSEEKERR_HTTP2_SESSION_ERRORERR_HTTP2_SETTINGS_CANCELERR_HTTP2_SOCKET_BOUNDERR_HTTP2_SOCKET_UNBOUNDERR_HTTP2_STATUS_101ERR_HTTP2_STATUS_INVALIDERR_HTTP2_STREAM_CANCELERR_HTTP2_STREAM_ERRORERR_HTTP2_STREAM_SELF_DEPENDENCYERR_HTTP2_TOO_MANY_INVALID_FRAMESERR_HTTP2_TRAILERS_ALREADY_SENTERR_HTTP2_TRAILERS_NOT_READYERR_HTTP2_UNSUPPORTED_PROTOCOLERR_ILLEGAL_CONSTRUCTORERR_IMPORT_ASSERTION_TYPE_FAILEDERR_IMPORT_ASSERTION_TYPE_MISSINGERR_IMPORT_ASSERTION_TYPE_UNSUPPORTEDERR_INCOMPATIBLE_OPTION_PAIRERR_INPUT_TYPE_NOT_ALLOWEDERR_INSPECTOR_ALREADY_ACTIVATEDERR_INSPECTOR_ALREADY_CONNECTEDERR_INSPECTOR_CLOSEDERR_INSPECTOR_COMMANDERR_INSPECTOR_NOT_ACTIVEERR_INSPECTOR_NOT_AVAILABLEERR_INSPECTOR_NOT_CONNECTEDERR_INSPECTOR_NOT_WORKERERR_INTERNAL_ASSERTIONERR_INVALID_ADDRESS_FAMILYERR_INVALID_ARG_TYPEERR_INVALID_ARG_VALUEERR_INVALID_ASYNC_IDERR_INVALID_BUFFER_SIZEERR_INVALID_CHARERR_INVALID_CURSOR_POSERR_INVALID_FDERR_INVALID_FD_TYPEERR_INVALID_FILE_URL_HOSTERR_INVALID_FILE_URL_PATHERR_INVALID_HANDLE_TYPEERR_INVALID_HTTP_TOKENERR_INVALID_IP_ADDRESSERR_INVALID_MODULEERR_INVALID_MODULE_SPECIFIERERR_INVALID_OBJECT_DEFINE_PROPERTYERR_INVALID_PACKAGE_CONFIGERR_INVALID_PACKAGE_TARGETERR_INVALID_PERFORMANCE_MARKERR_INVALID_PROTOCOLERR_INVALID_REPL_EVAL_CONFIGERR_INVALID_REPL_INPUTERR_INVALID_RETURN_PROPERTYERR_INVALID_RETURN_PROPERTY_VALUEERR_INVALID_RETURN_VALUEERR_INVALID_STATEERR_INVALID_SYNC_FORK_INPUTERR_INVALID_THISERR_INVALID_TRANSFER_OBJECTERR_INVALID_TUPLEERR_INVALID_URIERR_INVALID_URLERR_INVALID_URL_SCHEMEERR_IPC_CHANNEL_CLOSEDERR_IPC_DISCONNECTEDERR_IPC_ONE_PIPEERR_IPC_SYNC_FORKERR_LOADER_CHAIN_INCOMPLETEERR_MANIFEST_ASSERT_INTEGRITYERR_MANIFEST_DEPENDENCY_MISSINGERR_MANIFEST_INTEGRITY_MISMATCHERR_MANIFEST_INVALID_RESOURCE_FIELDERR_MANIFEST_INVALID_SPECIFIERERR_MANIFEST_PARSE_POLICYERR_MANIFEST_TDZERR_MANIFEST_UNKNOWN_ONERRORERR_MEMORY_ALLOCATION_FAILEDERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLEERR_METHOD_NOT_IMPLEMENTEDERR_MISSING_ARGSERR_MISSING_OPTIONERR_MISSING_PASSPHRASEERR_MISSING_PLATFORM_FOR_WORKERERR_MISSING_TRANSFERABLE_IN_TRANSFER_LISTERR_MODULE_NOT_FOUNDERR_MULTIPLE_CALLBACKERR_NAPI_CONS_FUNCTIONERR_NAPI_INVALID_DATAVIEW_ARGSERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENTERR_NAPI_INVALID_TYPEDARRAY_LENGTHERR_NAPI_TSFN_CALL_JSERR_NAPI_TSFN_GET_UNDEFINEDERR_NAPI_TSFN_START_IDLE_LOOPERR_NAPI_TSFN_STOP_IDLE_LOOPERR_NOT_BUILDING_SNAPSHOTERR_NO_CRYPTOERR_NO_ICUERR_NON_CONTEXT_AWARE_DISABLEDERR_OUT_OF_RANGEERR_PACKAGE_IMPORT_NOT_DEFINEDERR_PACKAGE_PATH_NOT_EXPORTEDERR_PARSE_ARGS_INVALID_OPTION_VALUEERR_PARSE_ARGS_UNEXPECTED_POSITIONALERR_PARSE_ARGS_UNKNOWN_OPTIONERR_PERFORMANCE_INVALID_TIMESTAMPERR_PERFORMANCE_MEASURE_INVALID_OPTIONSERR_PROTO_ACCESSERR_REQUIRE_ESMERR_SCRIPT_EXECUTION_INTERRUPTEDERR_SCRIPT_EXECUTION_TIMEOUTERR_SERVER_ALREADY_LISTENERR_SERVER_NOT_RUNNINGERR_SOCKET_ALREADY_BOUNDERR_SOCKET_BAD_BUFFER_SIZEERR_SOCKET_BAD_PORTERR_SOCKET_BAD_TYPEERR_SOCKET_BUFFER_SIZEERR_SOCKET_CLOSEDERR_SOCKET_DGRAM_IS_CONNECTEDERR_SOCKET_DGRAM_NOT_CONNECTEDERR_SOCKET_DGRAM_NOT_RUNNINGERR_SRI_PARSEERR_STREAM_ALREADY_FINISHEDERR_STREAM_CANNOT_PIPEERR_STREAM_DESTROYEDERR_STREAM_NULL_VALUESERR_STREAM_PREMATURE_CLOSEERR_STREAM_PUSH_AFTER_EOFERR_STREAM_UNSHIFT_AFTER_END_EVENTERR_STREAM_WRAPERR_STREAM_WRITE_AFTER_ENDERR_STRING_TOO_LONGERR_SYNTHETICERR_SYSTEM_ERRORERR_TEST_FAILUREERR_TLS_CERT_ALTNAME_FORMATERR_TLS_CERT_ALTNAME_INVALIDERR_TLS_DH_PARAM_SIZEERR_TLS_HANDSHAKE_TIMEOUTERR_TLS_INVALID_CONTEXTERR_TLS_INVALID_PROTOCOL_METHODERR_TLS_INVALID_PROTOCOL_VERSIONERR_TLS_INVALID_STATEERR_TLS_PROTOCOL_VERSION_CONFLICTERR_TLS_PSK_SET_IDENTIY_HINT_FAILEDERR_TLS_RENEGOTIATION_DISABLEDERR_TLS_REQUIRED_SERVER_NAMEERR_TLS_SESSION_ATTACKERR_TLS_SNI_FROM_SERVERERR_TRACE_EVENTS_CATEGORY_REQUIREDERR_TRACE_EVENTS_UNAVAILABLEERR_TRANSFORM_ALREADY_TRANSFORMINGERR_TRANSFORM_WITH_LENGTH_0ERR_TTY_INIT_FAILEDERR_UNAVAILABLE_DURING_EXITERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SETERR_UNESCAPED_CHARACTERSERR_UNHANDLED_ERRORERR_UNKNOWN_BUILTIN_MODULEERR_UNKNOWN_CREDENTIALERR_UNKNOWN_ENCODINGERR_UNKNOWN_FILE_EXTENSIONERR_UNKNOWN_MODULE_FORMATERR_UNKNOWN_SIGNALERR_UNSUPPORTED_DIR_IMPORTERR_UNSUPPORTED_ESM_URL_SCHEMEERR_USE_AFTER_CLOSEERR_VALID_PERFORMANCE_ENTRY_TYPEERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSINGERR_VM_MODULE_ALREADY_LINKEDERR_VM_MODULE_CACHED_DATA_REJECTEDERR_VM_MODULE_CANNOT_CREATE_CACHED_DATAERR_VM_MODULE_DIFFERENT_CONTEXTERR_VM_MODULE_LINK_FAILUREERR_VM_MODULE_NOT_MODULEERR_VM_MODULE_STATUSERR_WASI_ALREADY_STARTEDERR_WASI_NOT_STARTEDERR_WEBASSEMBLY_RESPONSEERR_WORKER_INIT_FAILEDERR_WORKER_INVALID_EXEC_ARGVERR_WORKER_NOT_RUNNINGERR_WORKER_OUT_OF_MEMORYERR_WORKER_PATHERR_WORKER_UNSERIALIZABLE_ERRORERR_WORKER_UNSUPPORTED_OPERATIONERR_ZLIB_INITIALIZATION_FAILEDHPE_HEADER_OVERFLOWHPE_UNEXPECTED_CONTENT_LENGTHMODULE_NOT_FOUND
- 弃用的 Node.js 错误码
ERR_CANNOT_TRANSFER_OBJECTERR_CRYPTO_HASH_DIGEST_NO_UTF16ERR_HTTP2_FRAME_ERRORERR_HTTP2_HEADERS_OBJECTERR_HTTP2_HEADER_REQUIREDERR_HTTP2_INFO_HEADERS_AFTER_RESPONDERR_HTTP2_STREAM_CLOSEDERR_HTTP_INVALID_CHARERR_INDEX_OUT_OF_RANGEERR_INVALID_OPT_VALUEERR_INVALID_OPT_VALUE_ENCODINGERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LISTERR_NAPI_CONS_PROTOTYPE_OBJECTERR_NETWORK_IMPORT_BAD_RESPONSEERR_NETWORK_IMPORT_DISALLOWEDERR_NO_LONGER_SUPPORTEDERR_OPERATION_FAILEDERR_OUTOFMEMORYERR_PARSE_HISTORY_DATAERR_SOCKET_CANNOT_SENDERR_STDERR_CLOSEERR_STDOUT_CLOSEERR_STREAM_READ_NOT_IMPLEMENTEDERR_TLS_RENEGOTIATION_FAILEDERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFERERR_UNKNOWN_STDIN_TYPEERR_UNKNOWN_STREAM_TYPEERR_V8BREAKITERATORERR_VALUE_OUT_OF_RANGEERR_VM_MODULE_NOT_LINKEDERR_VM_MODULE_LINKING_ERROREDERR_WORKER_UNSUPPORTED_EXTENSIONERR_ZLIB_BINDING_CLOSEDERR_CPU_USAGE
Error 错误#
在 Node.js 中运行的应用程序通常会遇到四类错误:
- 标准的 JavaScript 错误,例如 <EvalError>、<SyntaxError>、<RangeError>、<ReferenceError>、<TypeError> 和 <URIError>。
- 由底层操作系统约束触发的系统错误,例如尝试打开不存在的文件或尝试通过关闭的套接字发送数据。
- 由应用程序代码触发的用户指定的错误。
AssertionError是特殊的错误类,当 Node.js 检测到不应该发生的异常逻辑违规时会触发。 这些通常由node:assert模块引发。
Node.js 引发的所有 JavaScript 和系统错误都继承自标准的 JavaScript <Error> 类(或者是其实例),并且保证至少提供该类上可用的属性。
错误的传播和拦截#
Node.js 支持多种机制来传播和处理应用程序运行时发生的错误。
如何报告和处理这些错误完全取决于 Error 的类型和调用的 API 的风格。
所有的 JavaScript 错误都作为异常处理,使用标准的 JavaScript throw 机制立即生成并抛出错误。
这些是使用 JavaScript 语言提供的 try…catch 构造处理的。
// 由于 z 未定义,因此抛出 ReferenceError。
try {
const m = 1;
const n = m + z;
} catch (err) {
// 在此处理错误。
}
任何使用 JavaScript throw 机制都会引发异常,必须使用 try…catch 处理,否则 Node.js 进程将立即退出。
除了少数例外,同步的 API(任何不接受 callback 函数的阻塞方法,例如 fs.readFileSync)都使用 throw 来报告错误。
异步的 API 中发生的错误可以以多种方式报告:
-
大多数接受
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; } // 否则处理数据 }); -
当在
EventEmitter对象上调用异步方法时,错误可以路由到该对象的'error'事件。const net = require('node:net'); const connection = net.connect('localhost'); // 向流中添加 'error' 事件句柄: connection.on('error', (err) => { // 如果连接被服务器重置, // 或者根本无法连接,或者连接遇到任何类型的错误, // 则错误将发送到这里。 console.error(err); }); connection.pipe(process.stdout); -
Node.js API 中的一些典型的异步方法可能仍然使用
throw机制来引发必须使用try…catch处理的异常。 没有此类方法的完整列表;请参阅每种方法的文档以确定所需的适当错误处理机制。
'error' 事件机制的使用最常见于基于流和基于事件触发器的 API,其本身代表了一系列随时间推移的异步操作(而不是单个操作可能通过或失败)。
对于所有的 EventEmitter 对象,如果未提供 'error' 事件句柄,则将抛出错误,导致 Node.js 进程报告未捕获的异常并崩溃,除非:domain 模块使用得当或已为 'uncaughtException' 事件注册句柄。
const EventEmitter = require('node:events');
const ee = new EventEmitter();
setImmediate(() => {
// 这将导致进程崩溃,
// 因为没有添加 'error' 事件句柄。
ee.emit('error', new Error('This will crash'));
});
以这种方式产生的错误不能使用 try…catch 拦截,因为其抛出后调用代码已经退出。
开发者必须参考每种方法的文档,以确定这些方法引发的错误是如何传播的。
错误优先的回调#
Node.js 核心 API 暴露的大多数异步方法都遵循称为错误优先回调的惯用模式。
使用这种模式,回调函数作为参数传给方法。
当操作完成或出现错误时,回调函数将使用 Error 对象(如果有)作为第一个参数传入。
如果没有出现错误,则第一个参数将作为 null 传入。
const fs = require('node:fs');
function errorFirstCallback(err, data) {
if (err) {
console.error('There was an error', err);
return;
}
console.log(data);
}
fs.readFile('/some/file/that/does-not-exist', errorFirstCallback);
fs.readFile('/some/file/that/does-exist', errorFirstCallback);
JavaScript try…catch 机制不能用于拦截异步 API 产生的错误。
初学者的一个常见错误是尝试在错误优先的回调中使用 throw:
// 这行不通:
const fs = require('node:fs');
try {
fs.readFile('/some/file/that/does-not-exist', (err, data) => {
// 错误的假设:在这里抛出...
if (err) {
throw err;
}
});
} catch (err) {
// 这不会捕获抛出的错误!
console.error(err);
}
这不起作用,因为传给 fs.readFile() 的回调函数是异步调用的。
当回调被调用时,周围的代码(包括 try…catch 块)已经退出。
大多数情况下,在回调中抛出错误会使 Node.js 进程崩溃。
如果启用了域,或者已经在 process.on('uncaughtException') 注册了句柄,则可以拦截此类错误。
Error 类#
通用的 JavaScript <Error> 对象,不表示发生错误的任何具体情况。
Error 对象捕获"堆栈跟踪",详细说明代码中实例化 Error 的点,并可能提供错误的文本描述。
Node.js 生成的所有错误,包括所有系统和 JavaScript 错误,都将是 Error 类的实例或继承自 Error 类。
new Error(message)#
message<string>
创建新的 Error 对象并将 error.message 属性设置为提供的文本消息。
如果对象作为 message 传入,则通过调用 message.toString() 生成文本消息。
error.stack 属性将代表代码中调用 new Error() 的点。
堆栈跟踪依赖于 V8 的堆栈跟踪 API。
堆栈跟踪仅扩展到 (a) 同步代码执行的开始,或 (b) 属性 Error.stackTraceLimit 给定的帧数,以较小者为准。
Error.captureStackTrace(targetObject[, constructorOpt])#
targetObject<Object>constructorOpt<Function>
在 targetObject 上创建 .stack 属性,访问时返回表示调用 Error.captureStackTrace() 的代码中的位置的字符串。
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // 类似于`new Error().stack`
跟踪的第一行将以 ${myObject.name}: ${myObject.message} 为前缀。
可选的 constructorOpt 参数接受一个函数。
如果给定,则所有 constructorOpt 以上的帧,包括 constructorOpt,都将从生成的堆栈跟踪中省略。
constructorOpt 参数对于向用户隐藏错误生成的实现细节很有用。
例如:
function MyError() {
Error.captureStackTrace(this, MyError);
}
// 如果不将 MyError 传给 captureStackTrace,
// 则 MyError 帧将显示在 .stack 属性中。
// 通过传入构造函数,则省略该帧,并保留其下方的所有帧。
new MyError().stack;
Error.stackTraceLimit#
Error.stackTraceLimit 属性指定堆栈跟踪收集的堆栈帧数(无论是由 new Error().stack 还是 Error.captureStackTrace(obj) 生成)。
默认值为 10,但可以设置为任何有效的 JavaScript 数值。
更改将影响值更改后捕获的任何堆栈跟踪。
如果设置为非数字值,或设置为负数,则堆栈跟踪将不会捕获任何帧。
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);
// 打印: 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)
第一行格式为 <error class name>: <error message>,后面是一系列堆栈帧(每行以 "at " 开头)。
每一帧都描述了代码中导致错误生成的调用点。
V8 尝试为每个函数显示名称(通过变量名、函数名、或对象方法名),但偶尔会找不到合适的名称。
如果 V8 无法确定函数的名称,则只会显示该帧的位置信息。
否则,将显示确定的函数名称,括号中会附加位置信息。
帧仅为 JavaScript 函数生成。
例如,如果执行同步通过名为 cheetahify 的 C++ 插件函数,该函数本身调用 JavaScript 函数,则表示 cheetahify 调用的帧将不会出现在堆栈跟踪中:
const cheetahify = require('./native-binding.node');
function makeFaster() {
// `cheetahify()` 同步地调用 speedy。
cheetahify(function speedy() {
throw new Error('oh no!');
});
}
makeFaster();
// 会抛出:
// /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 内部调用- 如果帧代表用户程序中的调用(使用 CommonJS 模块系统)或其依赖项,则为
/absolute/path/to/file.js:line:column。 - 如果帧代表用户程序中的调用(使用 ES 模块系统)或其依赖关系,则为
<transport-protocol>:///url/to/module/file.mjs:line:column。
访问 error.stack 属性时,延迟生成表示堆栈跟踪的字符串。
堆栈跟踪捕获的帧数以 Error.stackTraceLimit 或当前事件循环刻度上的可用帧数中的较小者为界。
AssertionError 类#
- 继承自: <errors.Error>
表示断言的失败。
详情见 Class: assert.AssertionError。
RangeError 类#
- 继承自: <errors.Error>
表示提供的参数不在函数可接受值的集合或范围内;无论是数字范围,还是在给定函数参数的选项集之外。
require('node:net').connect(-1);
// 抛出 "RangeError: "port" option should be >= 0 and < 65536: -1"
Node.js 将立即生成并抛出 RangeError 实例作为参数验证的一种形式。
ReferenceError 类#
- 继承自: <errors.Error>
表示正在尝试访问未定义的变量。 此类错误通常表示代码中存在拼写错误或程序损坏。
虽然客户端代码可能会产生和传播这些错误,但实际上只有 V8 会这样做。
doesNotExist;
// 抛出 ReferenceError,doesNotExist 不是此程序中的变量。
除非应用程序动态生成和运行代码,否则 ReferenceError 实例表明代码或其依赖项中存在错误。
SyntaxError 类#
- 继承自: <errors.Error>
表示程序不是有效的 JavaScript。
这些错误只能作为代码评估的结果生成和传播。
代码评估可能是 eval、Function、require 或 vm 的结果。
这些错误几乎始终表明程序损坏。
try {
require('node:vm').runInThisContext('binary ! isNotOk');
} catch (err) {
// 'err' 将是 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.address#
如果存在,则 error.address 是描述网络连接失败的地址的字符串。
error.code#
error.code 属性是表示错误代码的字符串。
error.dest#
如果存在,则 error.dest 是报告文件系统错误时的文件路径目标。
error.errno#
error.errno 属性是对应于 libuv Error handling 中定义的错误码的负数。
在 Windows 上,系统提供的错误号将由 libuv 规范化。
要获取错误码的字符串表示,则使用 util.getSystemErrorName(error.errno)。
error.info#
如果存在,则 error.info 是包含错误情况详细信息的对象。
error.message#
error.message 是系统提供的人类可读的错误描述。
error.path#
如果存在,则 error.path 是包含相关无效路径名的字符串。
error.port#
如果存在,则 error.port 是不可用的网络连接端口。
error.syscall#
error.syscall 属性是描述失败的系统调用的字符串。
常见的系统错误#
这是编写 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(域名系统查找失败):表示EAI_NODATA或EAI_NONAME的域名系统失败。 这不是标准的 POSIX 错误。 -
EPERM(不允许操作):试图执行需要提升权限的操作。 -
EPIPE(断开的管道):对没有进程读取数据的管道、套接字或 FIFO 的写操作。 通常发生在net和http层,表示正在写入的流的远程端已关闭。 -
ETIMEDOUT(操作超时):连接或发送请求失败,因为连接方在一段时间后没有正确地响应。 通常发生在http或net。 通常表明socket.end()没有被正确地调用。
TypeError 类#
- 继承自 <errors.Error>
表示提供的参数不是允许的类型。
例如,将函数传给期望字符串为 TypeError 的参数。
require('node:url').parse(() => { });
// 抛出 TypeError,因为它期望字符串。
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 库。
error.reason#
描述错误原因的人类可读的字符串。
Node.js 错误码#
ABORT_ERR#
当操作中止时使用(通常使用 AbortController)。
不使用 AbortSignal 的 API 通常不会引发此代码的错误。
此代码未使用 Node.js 错误使用的常规 ERR_* 约定,以便与网络平台的 AbortError 兼容。
ERR_AMBIGUOUS_ARGUMENT#
函数参数的使用方式表明函数签名可能会被误解。
当 assert.throws(block, message) 中的 message 参数与 block 抛出的错误消息匹配时,则由 node:assert 模块抛出错误,因为这种用法表明用户认为 message 是预期的消息,而不是 block 不抛出时 AssertionError 将显示的消息。
ERR_ARG_NOT_ITERABLE#
需要可迭代的参数(即适用于 for...of 循环的值),但未提供给 Node.js API。
ERR_ASSERTION#
特殊类型的错误,每当 Node.js 检测到不应该发生的异常逻辑违规时就会触发。
这些通常由 node:assert 模块引发。
ERR_ASYNC_CALLBACK#
试图将不是函数的东西注册为 AsyncHooks 回调。
ERR_ASYNC_TYPE#
异步资源的类型无效。 如果使用公共的嵌入器 API,则用户还可以定义自己的类型。
ERR_BROTLI_COMPRESSION_FAILED#
传给 Brotli 流的数据未成功压缩。
ERR_BROTLI_INVALID_PARAM#
在构建 Brotli 流期间传入了无效的参数键。
ERR_BUFFER_CONTEXT_NOT_AVAILABLE#
尝试从插件或嵌入器代码创建 Node.js Buffer 实例,而在与 Node.js 实例无关的 JS 引擎上下文中。
传给 Buffer 方法的数据将在方法返回时被释放。
当遇到此错误时,创建 Buffer 实例的一种可能的替代方法是创建普通的 Uint8Array,它仅在生成的对象的原型上有所不同。
Uint8Array 通常在 Buffer 所在的所有的 Node.js 核心 API 中被接受;它们在所有上下文中都可用。
ERR_BUFFER_OUT_OF_BOUNDS#
尝试了超出 Buffer 范围的操作。
ERR_BUFFER_TOO_LARGE#
已尝试创建大于最大允许大小的 Buffer。
ERR_CANNOT_WATCH_SIGINT#
Node.js 无法监视 SIGINT 信号。
ERR_CHILD_CLOSED_BEFORE_REPLY#
在父进程收到回复之前子进程已关闭。
ERR_CHILD_PROCESS_IPC_REQUIRED#
当在没有指定进程间通信通道的情况下衍生子进程时使用。
ERR_CHILD_PROCESS_STDIO_MAXBUFFER#
当主进程试图从子进程的标准错误或标准输出读取数据、并且数据的长度比 maxBuffer 选项长时使用。
ERR_CLOSED_MESSAGE_PORT#
曾试图在关闭状态下使用 MessagePort 实例,通常是在调用 .close() 之后。
ERR_CONSOLE_WRITABLE_STREAM#
Console 在没有 stdout 流的情况下被实例化,或者 Console 有不可写的 stdout 或 stderr 流。
ERR_CONSTRUCT_CALL_INVALID#
调用了不可调用的类构造函数。
ERR_CONSTRUCT_CALL_REQUIRED#
在没有 new 的情况下调用了类的构造函数。
ERR_CONTEXT_NOT_INITIALIZED#
传入 API 的虚拟机上下文尚未初始化。 这可能发生在上下文创建过程中发生(并被捕获)错误时,例如,当分配失败或在创建上下文时达到最大调用堆栈大小时。
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED#
请求的客户端证书引擎不受所使用的 OpenSSL 版本支持。
ERR_CRYPTO_ECDH_INVALID_FORMAT#
format 参数的无效值被传给 crypto.ECDH() 类 getPublicKey() 方法。
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY#
key 参数的无效值已传给 crypto.ECDH() 类 computeSecret() 方法。
这意味着公钥位于椭圆曲线之外。
ERR_CRYPTO_ENGINE_UNKNOWN#
无效的加密引擎标识符被传给 require('node:crypto').setEngine()。
ERR_CRYPTO_FIPS_FORCED#
使用了 --force-fips 命令行参数,但尝试在 node:crypto 模块中启用或禁用 FIPS 模式。
ERR_CRYPTO_FIPS_UNAVAILABLE#
尝试启用或禁用 FIPS 模式,但 FIPS 模式不可用。
ERR_CRYPTO_HASH_FINALIZED#
hash.digest() 被多次调用。
对于 Hash 对象的每个实例,调用 hash.digest() 方法的次数不得超过一次。
ERR_CRYPTO_HASH_UPDATE_FAILED#
hash.update() 因任何原因失败。
这应该很少发生,如果有的话。
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#
提供了无效的 JSON 网络密钥。
ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE#
给定的加密密钥对象的类型对于尝试的操作无效。
ERR_CRYPTO_INVALID_KEYLEN#
提供了无效的密钥长度。
ERR_CRYPTO_INVALID_KEYPAIR#
提供了无效的密钥对。
ERR_CRYPTO_INVALID_KEYTYPE#
提供了无效的密钥类型。
ERR_CRYPTO_INVALID_MESSAGELEN#
提供了无效的消息长度。
ERR_CRYPTO_INVALID_SCRYPT_PARAMS#
提供了无效的 scrypt 算法参数。
ERR_CRYPTO_INVALID_STATE#
对处于无效状态的对象使用了加密方法。
例如,在调用 cipher.final() 之前调用 cipher.getAuthTag()。
ERR_CRYPTO_INVALID_TAG_LENGTH#
提供了无效的身份验证标签长度。
ERR_CRYPTO_JOB_INIT_FAILED#
异步加密操作的初始化失败。
ERR_CRYPTO_JWK_UNSUPPORTED_CURVE#
密钥的椭圆曲线未在 JSON 网络密钥椭圆曲线注册表中注册使用。
ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE#
密钥的非对称密钥类型未在 JSON 网络密钥类型注册表中注册使用。
ERR_CRYPTO_OPERATION_FAILED#
加密操作失败,原因不明。
ERR_CRYPTO_PBKDF2_ERROR#
PBKDF2 算法因不明原因失败。 OpenSSL 没有提供更多细节,因此 Node.js 也没有。
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER#
一个或多个 crypto.scrypt() 或 crypto.scryptSync() 参数超出其合法范围。
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED#
Node.js 是在没有 scrypt 支持的情况下编译的。
官方发布的二进制文件不可能,但自定义构建可能会发生,包括发行版构建。
ERR_CRYPTO_SIGN_KEY_REQUIRED#
未向 sign.sign() 方法提供签名 key。
ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH#
crypto.timingSafeEqual() 是用不同长度的 Buffer、TypedArray 或 DataView 参数调用的。
ERR_CRYPTO_UNKNOWN_CIPHER#
指定了未知的密码。
ERR_CRYPTO_UNKNOWN_DH_GROUP#
给定了未知的 Diffie-Hellman 组名。
有关有效组名的列表,请参阅 crypto.getDiffieHellman()。
ERR_CRYPTO_UNSUPPORTED_OPERATION#
尝试调用不受支持的加密操作。
ERR_DEBUGGER_ERROR#
调试器发生错误。
ERR_DEBUGGER_STARTUP_ERROR#
调试器在等待所需的主机/端口空闲时超时。
ERR_DLOPEN_DISABLED#
加载已使用 --no-addons 禁用的原生插件。
ERR_DLOPEN_FAILED#
调用 process.dlopen() 失败。
ERR_DIR_CLOSED#
fs.Dir 先前已关闭。
ERR_DIR_CONCURRENT_OPERATION#
尝试在具有正在进行的异步操作的 fs.Dir 上进行同步的读取或关闭的调用。
ERR_DNS_SET_SERVERS_FAILED#
c-ares 设置域名系统服务器失败。
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_ENCODING_INVALID_ENCODED_DATA#
根据提供的编码,提供给 TextDecoder() API 的数据无效。
ERR_ENCODING_NOT_SUPPORTED#
提供给 TextDecoder() API 的编码不是 WHATWG 支持的编码之一。
ERR_EVAL_ESM_CANNOT_PRINT#
--print 不能与 ESM 输入一起使用。
ERR_EVENT_RECURSION#
当试图在 EventTarget 上递归调度事件时抛出。
ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE#
JS 执行上下文与 Node.js 环境无关。 当 Node.js 用作嵌入式库并且 JS 引擎的一些钩子没有正确地设置时,可能会发生这种情况。
ERR_FALSY_VALUE_REJECTION#
通过 util.callbackify() 回调的 Promise 使用非真值拒绝。
ERR_FEATURE_UNAVAILABLE_ON_PLATFORM#
当使用了运行 Node.js 的当前平台不可用的特性时使用。
ERR_FS_CP_DIR_TO_NON_DIR#
尝试使用 fs.cp() 将目录复制到非目录(文件、符号链接等)。
ERR_FS_CP_EEXIST#
试图使用 fs.cp()(force 和 errorOnExist 设置为 true)复制已经存在的文件。
ERR_FS_CP_EINVAL#
当使用 fs.cp()、src 或 dest 指向无效路径时。
ERR_FS_CP_FIFO_PIPE#
试图使用 fs.cp() 复制命名管道。
ERR_FS_CP_NON_DIR_TO_DIR#
尝试使用 fs.cp() 将非目录(文件、符号链接等)复制到目录。
ERR_FS_CP_SOCKET#
试图使用 fs.cp() 复制到套接字。
ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY#
当使用 fs.cp() 时,dest 中的符号链接指向 src 的子目录。
ERR_FS_CP_UNKNOWN#
试图使用 fs.cp() 复制到未知的文件类型。
ERR_FS_EISDIR#
路径是目录。
ERR_FS_FILE_TOO_LARGE#
已尝试读取大小大于 Buffer 允许的最大大小的文件。
ERR_FS_INVALID_SYMLINK_TYPE#
传给 fs.symlink() 或 fs.symlinkSync() 方法的符号链接类型无效。
ERR_HTTP_HEADERS_SENT#
在已发送标头后尝试添加更多标头。
ERR_HTTP_INVALID_HEADER_VALUE#
指定了无效的 HTTP 标头值。
ERR_HTTP_INVALID_STATUS_CODE#
状态代码超出了常规状态码的范围(100-999)。
ERR_HTTP_REQUEST_TIMEOUT#
客户端没有在允许的时间内发送整个请求。
ERR_HTTP_SOCKET_ENCODING#
根据 RFC 7230 第 3 节,不允许更改套接字编码。
ERR_HTTP_TRAILER_INVALID#
即使传输编码不支持,也设置了 Trailer 标头。
ERR_HTTP2_ALTSVC_INVALID_ORIGIN#
HTTP/2 ALTSVC 帧需要有效的来源。
ERR_HTTP2_ALTSVC_LENGTH#
HTTP/2 ALTSVC 帧限制为最多 16,382 个有效载荷字节。
ERR_HTTP2_CONNECT_AUTHORITY#
对于使用 CONNECT 方法的 HTTP/2 请求,需要 :authority 伪标头。
ERR_HTTP2_CONNECT_PATH#
对于使用 CONNECT 方法的 HTTP/2 请求,禁止使用 :path 伪标头。
ERR_HTTP2_CONNECT_SCHEME#
对于使用 CONNECT 方法的 HTTP/2 请求,禁止使用 :scheme 伪标头。
ERR_HTTP2_ERROR#
发生了非特定的 HTTP/2 错误。
ERR_HTTP2_GOAWAY_SESSION#
新的 HTTP/2 流可能不会在 Http2Session 从连接的对等方接收到 GOAWAY 帧后打开。
ERR_HTTP2_HEADER_SINGLE_VALUE#
为只需要一个值的 HTTP/2 标头字段提供了多个值。
ERR_HTTP2_HEADERS_AFTER_RESPOND#
在启动 HTTP/2 响应后指定了额外的标头。
ERR_HTTP2_HEADERS_SENT#
试图发送多个响应头。
ERR_HTTP2_INFO_STATUS_NOT_ALLOWED#
信息性 HTTP 状态码(1xx)不能设置为 HTTP/2 响应的响应状态代码。
ERR_HTTP2_INVALID_CONNECTION_HEADERS#
HTTP/1 连接特定标头禁止在 HTTP/2 请求和响应中使用。
ERR_HTTP2_INVALID_HEADER_VALUE#
指定了无效的 HTTP/2 标头值。
ERR_HTTP2_INVALID_INFO_STATUS#
指定了无效的 HTTP 信息状态代码。
信息状态代码必须是 100 和 199(含)之间的整数。
ERR_HTTP2_INVALID_ORIGIN#
HTTP/2 ORIGIN 帧需要有效的来源。
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH#
传给 http2.getUnpackedSettings() API 的输入 Buffer 和 Uint8Array 实例的长度必须是 6 的倍数。
ERR_HTTP2_INVALID_PSEUDOHEADER#
只能使用有效的 HTTP/2 伪标头(:status、:path、:authority、:scheme 和 :method)。
ERR_HTTP2_INVALID_SESSION#
对已被销毁的 Http2Session 对象执行了操作。
ERR_HTTP2_INVALID_SETTING_VALUE#
为 HTTP/2 设置指定了无效值。
ERR_HTTP2_INVALID_STREAM#
对已被销毁的流执行了操作。
ERR_HTTP2_MAX_PENDING_SETTINGS_ACK#
每当一个 HTTP/2 SETTINGS 帧被发送到连接的对端时,对端需要发送确认其已经收到并应用了新的 SETTINGS。
默认情况下,可以在任何给定时间发送最大数量的未确认 SETTINGS 帧。
当达到该限制时使用此错误码。
ERR_HTTP2_NESTED_PUSH#
试图从推送流中启动新的推送流。 不允许嵌套推送流。
ERR_HTTP2_NO_MEM#
使用 http2session.setLocalWindowSize(windowSize) API 时内存不足。
ERR_HTTP2_NO_SOCKET_MANIPULATION#
试图直接操作(读取、写入、暂停、恢复等)连接到 Http2Session 的套接字。
ERR_HTTP2_ORIGIN_LENGTH#
HTTP/2 ORIGIN 帧的长度限制为 16382 字节。
ERR_HTTP2_OUT_OF_STREAMS#
在单个 HTTP/2 会话上创建的流数达到了最大限制。
ERR_HTTP2_PAYLOAD_FORBIDDEN#
已为禁止负载的 HTTP 响应码指定了消息负载。
ERR_HTTP2_PING_CANCEL#
HTTP/2 发送回显信息被取消。
ERR_HTTP2_PING_LENGTH#
HTTP/2 发送回显信息负载的长度必须正好是 8 个字节。
ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED#
HTTP/2 伪标头使用不当。
伪标头是以 : 前缀开头的标头键名。
ERR_HTTP2_PUSH_DISABLED#
尝试创建推送流,但已被客户端禁用。
ERR_HTTP2_SEND_FILE#
尝试使用 Http2Stream.prototype.responseWithFile() API 发送目录。
ERR_HTTP2_SEND_FILE_NOSEEK#
尝试使用 Http2Stream.prototype.responseWithFile() API 发送常规文件以外的内容,但提供了 offset 或 length 选项。
ERR_HTTP2_SESSION_ERROR#
Http2Session 以非零错误码关闭。
ERR_HTTP2_SETTINGS_CANCEL#
Http2Session 设置取消。
ERR_HTTP2_SOCKET_BOUND#
试图将 Http2Session 对象连接到已经绑定到另一个 Http2Session 对象的 net.Socket 或 tls.TLSSocket。
ERR_HTTP2_SOCKET_UNBOUND#
尝试使用已关闭的 Http2Session 的 socket 属性。
ERR_HTTP2_STATUS_101#
在 HTTP/2 中禁止使用 101 信息状态码。
ERR_HTTP2_STATUS_INVALID#
指定了无效的 HTTP 状态码。
状态码必须是介于 100 和 599(含)之间的整数。
ERR_HTTP2_STREAM_CANCEL#
在将任何数据传输到连接的对等方之前,Http2Stream 已被破坏。
ERR_HTTP2_STREAM_ERROR#
在 RST_STREAM 帧中指定了非零错误码。
ERR_HTTP2_STREAM_SELF_DEPENDENCY#
当在为 HTTP/2 流设置优先级时,该流可能被标记为父流的依赖项。 当试图标记流并依赖于它自己时,将使用此错误码。
ERR_HTTP2_TOO_MANY_INVALID_FRAMES#
已超出通过 maxSessionInvalidFrames 选项指定的对等方发送的可接受的无效 HTTP/2 协议帧的限制。
ERR_HTTP2_TRAILERS_ALREADY_SENT#
已在 Http2Stream 上发送了尾随标头。
ERR_HTTP2_TRAILERS_NOT_READY#
在 Http2Stream 对象上触发 'wantTrailers' 事件之后,才能调用 http2stream.sendTrailers() 方法。
只有为 Http2Stream 设置了 waitForTrailers 选项,才会触发 'wantTrailers' 事件。
ERR_HTTP2_UNSUPPORTED_PROTOCOL#
http2.connect() 传入的网址使用除 http: 或 https: 以外的任何协议。
ERR_ILLEGAL_CONSTRUCTOR#
尝试使用非公共构造函数构造对象。
ERR_IMPORT_ASSERTION_TYPE_FAILED#
导入断言失败,阻止导入指定的模块。
ERR_IMPORT_ASSERTION_TYPE_MISSING#
缺少导入断言,阻止导入指定的模块。
ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED#
此版本的 Node.js 不支持导入断言。
ERR_INCOMPATIBLE_OPTION_PAIR#
选项对彼此不兼容,不能同时使用。
ERR_INPUT_TYPE_NOT_ALLOWED#
--input-type 标志用于尝试执行文件。
此标志只能用于通过 --eval、--print 或 STDIN 输入。
ERR_INSPECTOR_ALREADY_ACTIVATED#
在使用 node:inspector 模块时,当检查器已经开始监听端口时尝试激活。
在不同地址上激活之前使用 inspector.close()。
ERR_INSPECTOR_ALREADY_CONNECTED#
在使用 node:inspector 模块时,当检查器已经连接时尝试连接。
ERR_INSPECTOR_CLOSED#
在使用 node:inspector 模块时,在会话已经关闭后尝试使用检查器。
ERR_INSPECTOR_COMMAND#
通过 node:inspector 模块发出命令时发生错误。
ERR_INSPECTOR_NOT_ACTIVE#
当调用 inspector.waitForDebugger() 时,inspector 未激活。
ERR_INSPECTOR_NOT_AVAILABLE#
node:inspector 模块无法使用。
ERR_INSPECTOR_NOT_CONNECTED#
在使用 node:inspector 模块时,尝试在连接前使用检查器。
ERR_INSPECTOR_NOT_WORKER#
在主线程上调用了只能从工作线程使用的 API。
ERR_INTERNAL_ASSERTION#
Node.js 中存在错误或 Node.js 内部使用不正确。 要修复该错误,请在 https://github.com/nodejs/node/issues 上打开问题。
ERR_INVALID_ADDRESS_FAMILY#
Node.js API 无法识别提供的地址族。
ERR_INVALID_ARG_TYPE#
传给 Node.js API 的参数类型错误。
ERR_INVALID_ARG_VALUE#
为给定参数传入了无效或不受支持的值。
ERR_INVALID_ASYNC_ID#
使用 AsyncHooks 传入了无效的 asyncId 或 triggerAsyncId。
小于 -1 的标识不应该发生。
ERR_INVALID_BUFFER_SIZE#
在 Buffer 上执行了交换,但其大小与操作不兼容。
ERR_INVALID_CHAR#
在标头中检测到无效字符。
ERR_INVALID_CURSOR_POS#
给定流上的游标不能移动到没有指定列的指定行。
ERR_INVALID_FD#
文件描述符无效(例如,它是负值)。
ERR_INVALID_FD_TYPE#
文件描述符的类型无效。
ERR_INVALID_FILE_URL_HOST#
使用 file: 网址的 Node.js API(例如 fs 模块中的某些函数)遇到了主机不兼容的文件网址。
这种情况只能发生在只支持 localhost 或空主机的类 Unix 系统上。
ERR_INVALID_FILE_URL_PATH#
使用 file: 网址的 Node.js API(例如 fs 模块中的某些函数)遇到路径不兼容的文件网址。
确定是否可以使用路径的确切语义是平台相关的。
ERR_INVALID_HANDLE_TYPE#
试图通过进程间通信通道向子进程发送不受支持的"句柄"。
有关详细信息,请参阅 subprocess.send() 和 process.send()。
ERR_INVALID_HTTP_TOKEN#
提供了无效的 HTTP 令牌。
ERR_INVALID_IP_ADDRESS#
IP 地址无效。
ERR_INVALID_MODULE#
试图加载不存在或无效的模块。
ERR_INVALID_MODULE_SPECIFIER#
导入的模块字符串是无效的网址、包名称、或包子路径说明符。
ERR_INVALID_OBJECT_DEFINE_PROPERTY#
在对象的属性上设置无效属性时出错。
ERR_INVALID_PACKAGE_CONFIG#
无效的 package.json 文件解析失败。
ERR_INVALID_PACKAGE_TARGET#
package.json "exports" 字段包含用于尝试模块解析的无效目标映射值。
ERR_INVALID_PERFORMANCE_MARK#
在使用性能计时 API (perf_hooks) 时,性能标记无效。
ERR_INVALID_PROTOCOL#
无效的 options.protocol 被传给了 http.request()。
ERR_INVALID_REPL_EVAL_CONFIG#
breakEvalOnSigint 和 eval 选项都在 REPL 配置中设置,这是不支持的。
ERR_INVALID_REPL_INPUT#
输入不能在 REPL 中使用。
REPL 文档中描述了使用此错误的条件。
ERR_INVALID_RETURN_PROPERTY#
如果函数选项在执行时没有为其返回的对象属性之一提供有效值时,则抛出错误。
ERR_INVALID_RETURN_PROPERTY_VALUE#
如果函数选项在执行时没有为其返回的对象属性之一提供预期值类型时,则抛出错误。
ERR_INVALID_RETURN_VALUE#
如果函数选项在执行时没有返回预期的值类型时(例如当函数应该返回 promise),则抛出错误。
ERR_INVALID_STATE#
表示由于状态无效而无法完成操作。 例如,对象可能已经被销毁,或者可能正在执行另一个操作。
ERR_INVALID_SYNC_FORK_INPUT#
将 Buffer、TypedArray、DataView 或 string 作为标准输入输出提供给异步的衍生。
有关更多信息,请参阅 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');
// 抛出使用代码 'ERR_INVALID_THIS' 的 TypeError
ERR_INVALID_TRANSFER_OBJECT#
无效的传输对象被传给 postMessage()。
ERR_INVALID_TUPLE#
提供给 WHATWG URLSearchParams 构造函数 的 iterable 中的元素不代表 [name, value] 元组,也就是说,如果元素不可迭代,或者不完全由两个元素组成。
ERR_INVALID_URI#
传入了无效的网址。
ERR_INVALID_URL#
无效的 URL 被传给 WHATWG URL 构造函数 或要解析的旧版 url.parse()。
抛出的错误对象通常有附加的属性 'input',其中包含解析失败的网址。
ERR_INVALID_URL_SCHEME#
试图将不兼容方案(协议)的网址用于特定目的。
它仅用于 fs 模块中的 WHATWG 网址 API 支持(仅接受具有 'file' 方案的网址),但将来也可能用于其他 Node.js API。
ERR_IPC_CHANNEL_CLOSED#
尝试使用已关闭的进程间通信通道。
ERR_IPC_DISCONNECTED#
试图断开已经断开的进程间通信通道。
有关更多信息,请参阅 child_process 模块的文档。
ERR_IPC_ONE_PIPE#
尝试使用多个进程间通信通道创建子 Node.js 进程。
有关更多信息,请参阅 child_process 模块的文档。
ERR_IPC_SYNC_FORK#
尝试使用同步衍生的 Node.js 进程打开进程间通信通道。
有关更多信息,请参阅 child_process 模块的文档。
ERR_LOADER_CHAIN_INCOMPLETE#
返回 ESM 加载器钩子,没有调用 next(),也没有明确发出短路信号。
ERR_MANIFEST_ASSERT_INTEGRITY#
尝试加载资源,但该资源与策略清单定义的完整性不匹配。 有关详细信息,请参阅策略清单的文档。
ERR_MANIFEST_DEPENDENCY_MISSING#
已尝试加载资源,但该资源未列为尝试加载它的位置的依赖项。 有关详细信息,请参阅策略清单的文档。
ERR_MANIFEST_INTEGRITY_MISMATCH#
已尝试加载策略清单,但该清单包含多个彼此不匹配的资源条目。 更新清单条目以解决此错误。 有关详细信息,请参阅策略清单的文档。
ERR_MANIFEST_INVALID_RESOURCE_FIELD#
策略清单资源的其中一个字段的值无效。 更新清单条目以解决此错误。 有关详细信息,请参阅策略清单的文档。
ERR_MANIFEST_INVALID_SPECIFIER#
策略清单资源的依赖项映射之一具有无效值。 更新清单条目以匹配以解决此错误。 有关详细信息,请参阅策略清单的文档。
ERR_MANIFEST_PARSE_POLICY#
已尝试加载策略清单,但无法解析该清单。 有关详细信息,请参阅策略清单的文档。
ERR_MANIFEST_TDZ#
已尝试从策略清单中读取,但清单初始化尚未发生。 这可能是 Node.js 中的错误。
ERR_MANIFEST_UNKNOWN_ONERROR#
已加载策略清单,但其 "onerror" 行为的值未知。 有关详细信息,请参阅策略清单的文档。
ERR_MEMORY_ALLOCATION_FAILED#
尝试分配内存(通常在 C++ 层),但是失败。
ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE#
无法在目标虚拟机 Context 中反序列化发布到 MessagePort 的消息。
目前并非所有 Node.js 对象都可以在任何上下文中成功实例化,在这种情况下,尝试使用 postMessage() 传输它们可能会在接收端失败。
ERR_METHOD_NOT_IMPLEMENTED#
需要方法,但未实现。
ERR_MISSING_ARGS#
未传入 Node.js API 的必需参数。
这仅用于严格遵守 API 规范(在某些情况下可能接受 func(undefined) 但不接受 func())。
在大多数原生 Node.js API 中,func(undefined) 和 func() 的处理方式相同,可以使用 ERR_INVALID_ARG_TYPE 错误码代替。
ERR_MISSING_OPTION#
对于接受选项对象的 API,某些选项可能是强制性的。 如果缺少必需的选项,则会抛出此代码。
ERR_MISSING_PASSPHRASE#
已尝试在未指定密码的情况下读取加密密钥。
ERR_MISSING_PLATFORM_FOR_WORKER#
此 Node.js 实例使用的 V8 平台不支持创建工作线程。 这是由于缺乏对工作线程的嵌入支持造成的。 特别是,此错误不会发生在 Node.js 的标准构建中。
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST#
需要在 transferList 参数中显式列出的对象在传给 postMessage() 调用的对象中,但未在 transferList 中为该调用提供。
通常,这是 MessagePort。
在 v15.0.0 之前的 Node.js 版本中,这里使用的错误码是 ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST。
但是,可传输对象类型集已扩展到涵盖比 MessagePort 更多的类型。
ERR_MODULE_NOT_FOUND#
当尝试 import 操作或加载程序入口点时,ECMAScript 模块加载器无法解析模块文件。
ERR_MULTIPLE_CALLBACK#
回调被多次调用。
回调几乎总是意味着只被调用一次,因为查询可以被履行或被拒绝,但不能同时被执行。 后者可以通过多次调用回调来实现。
ERR_NAPI_CONS_FUNCTION#
在使用 Node-API 时,传入的构造函数不是函数。
ERR_NAPI_INVALID_DATAVIEW_ARGS#
在调用 napi_create_dataview() 时,给定的 offset 超出了数据视图的边界或 offset + length 大于给定的 buffer 的长度。
ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT#
在调用 napi_create_typedarray() 时,提供的 offset 不是元素大小的倍数
ERR_NAPI_INVALID_TYPEDARRAY_LENGTH#
在调用 napi_create_typedarray() 时,(length * size_of_element) + byte_offset 大于给定的 buffer 的长度。
ERR_NAPI_TSFN_CALL_JS#
调用线程安全函数的 JavaScript 部分时出错。
ERR_NAPI_TSFN_GET_UNDEFINED#
尝试检索 JavaScript undefined 值时出错。
ERR_NAPI_TSFN_START_IDLE_LOOP#
在主线程上,值从空闲循环中与线程安全函数关联的队列中删除。 此错误表示尝试启动循环时发生错误。
ERR_NAPI_TSFN_STOP_IDLE_LOOP#
一旦队列中没有更多的条目,则空闲循环必须暂停。 此错误表明空闲循环未能停止
ERR_NOT_BUILDING_SNAPSHOT#
尝试使用只能在构建 V8 启动快照时使用的操作,即使 Node.js 没有构建一个。
ERR_NO_CRYPTO#
尝试使用加密特性,而 Node.js 没有使用 OpenSSL 加密支持进行编译。
ERR_NO_ICU#
尝试使用需要 ICU 的特性,但 Node.js 没有在 ICU 支持下编译。
ERR_NON_CONTEXT_AWARE_DISABLED#
在不允许加载的进程中加载了非上下文感知的原生插件。
ERR_OUT_OF_RANGE#
给定的值超出了可接受的范围。
ERR_PACKAGE_IMPORT_NOT_DEFINED#
package.json "imports" 字段未定义给定的内部包说明符映射。
ERR_PACKAGE_PATH_NOT_EXPORTED#
package.json "exports" 字段没有导出请求的子路径。
因为导出是封装的,没有导出的私有内部模块无法通过包解析导入,除非使用绝对网址。
ERR_PARSE_ARGS_INVALID_OPTION_VALUE#
当 strict 设置为 true 时,如果为 <string> 类型的选项提供了 <boolean> 值,或者为 <boolean> 类型的选项提供了 <string> 值,则由 util.parseArgs() 抛出异常。
ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL#
当提供位置参数并且 allowPositionals 设置为 false 时,由 util.parseArgs() 抛出。
ERR_PARSE_ARGS_UNKNOWN_OPTION#
当 strict 设置为 true 时,如果 options 中没有配置参数,则由 util.parseArgs() 抛出异常。
ERR_PERFORMANCE_INVALID_TIMESTAMP#
为性能标记或度量提供了无效的时间戳值。
ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS#
为性能度量提供了无效选项。
ERR_PROTO_ACCESS#
已禁止使用 --disable-proto=throw 访问 Object.prototype.__proto__。
Object.getPrototypeOf 和 Object.setPrototypeOf 应该用于获取和设置对象的原型。
ERR_REQUIRE_ESM#
尝试将 require() 设为 ES 模块。
ERR_SCRIPT_EXECUTION_INTERRUPTED#
脚本执行被 SIGINT 中断(例如,Ctrl+C 被按下。)
ERR_SCRIPT_EXECUTION_TIMEOUT#
脚本执行超时,可能是由于正在执行的脚本中存在错误。
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_ALREADY_BOUND#
试图绑定已经绑定的套接字。
ERR_SOCKET_BAD_BUFFER_SIZE#
为 dgram.createSocket() 中的 recvBufferSize 或 sendBufferSize 选项传入了无效的(负数的)大小。
ERR_SOCKET_BAD_PORT#
期望端口 >= 0 和 < 65536 的 API 函数收到无效值。
ERR_SOCKET_BAD_TYPE#
需要套接字类型(udp4 或 udp6)的 API 函数收到无效值。
ERR_SOCKET_BUFFER_SIZE#
在使用 dgram.createSocket() 时,无法确定接收或发送 Buffer 的大小。
ERR_SOCKET_CLOSED#
试图在已经关闭的套接字上进行操作。
ERR_SOCKET_DGRAM_IS_CONNECTED#
在已连接的套接字上进行了 dgram.connect() 调用。
ERR_SOCKET_DGRAM_NOT_CONNECTED#
在断开连接的套接字上进行了 dgram.disconnect() 或 dgram.remoteAddress() 调用。
ERR_SOCKET_DGRAM_NOT_RUNNING#
进行了调用,并且 UDP 子系统没有运行。
ERR_SRI_PARSE#
为子资源完整性检查提供了字符串,但无法解析。 通过查看子资源完整性规范来检查完整性属性的格式。
ERR_STREAM_ALREADY_FINISHED#
调用的流方法无法完成,因为流已完成
ERR_STREAM_CANNOT_PIPE#
试图在 Writable 流上调用 stream.pipe()
ERR_STREAM_DESTROYED#
调用了无法完成的流方法,因为使用 stream.destroy() 销毁了该流。
ERR_STREAM_NULL_VALUES#
试图用 null 块调用 stream.write()。
ERR_STREAM_PREMATURE_CLOSE#
stream.finished() 和 stream.pipeline() 返回的错误,当流或管道以非正常方式结束且没有显式错误时。
ERR_STREAM_PUSH_AFTER_EOF#
在将 null(EOF)推送到流后,尝试调用 stream.push()。
ERR_STREAM_UNSHIFT_AFTER_END_EVENT#
在触发 'end' 事件后尝试调用 stream.unshift()。
ERR_STREAM_WRAP#
如果在套接字上设置了字符串解码器或解码器在 objectMode 中,则防止中止。
const Socket = require('node:net').Socket;
const instance = new Socket();
instance.setEncoding('utf8');
ERR_STREAM_WRITE_AFTER_END#
在调用 stream.end() 后尝试调用 stream.write()。
ERR_STRING_TOO_LONG#
尝试创建长度超过最大允许长度的字符串。
ERR_SYNTHETIC#
用于捕获诊断报告调用堆栈的人为错误对象。
ERR_SYSTEM_ERROR#
Node.js 进程中发生了未指定或非特定的系统错误。
错误对象将具有带有附加详细信息的 err.info 对象属性。
ERR_TEST_FAILURE#
此错误表示测试失败。
有关失败的其他信息可通过 cause 属性获得。
failureType 属性指定发生故障时测试正在做什么。
ERR_TLS_CERT_ALTNAME_FORMAT#
如果用户提供的 subjectaltname 属性违反编码规则,则 checkServerIdentity 会抛出此错误。
Node.js 本身生成的证书对象始终符合编码规则,永远不会出现此错误。
ERR_TLS_CERT_ALTNAME_INVALID#
在使用 TLS 时,对等方的主机名/IP 与其证书中的任何 subjectAltNames 都不匹配。
ERR_TLS_DH_PARAM_SIZE#
在使用 TLS 时,为 Diffie-Hellman(DH)密钥协商协议提供的参数太小。
默认情况下,密钥长度必须大于或等于 1024 位以避免漏洞,尽管强烈建议使用 2048 位或更大以增强安全性。
ERR_TLS_HANDSHAKE_TIMEOUT#
TLS/SSL 握手超时。 在这种情况下,服务器也必须中止连接。
ERR_TLS_INVALID_CONTEXT#
上下文必须是 SecureContext。
ERR_TLS_INVALID_PROTOCOL_METHOD#
指定的 secureProtocol 方法无效。
它要么未知,要么因为不安全而被禁用。
ERR_TLS_INVALID_PROTOCOL_VERSION#
有效的 TLS 协议版本为 'TLSv1'、'TLSv1.1' 或 'TLSv1.2'。
ERR_TLS_INVALID_STATE#
必须连接并安全建立 TLS 套接字。 确保在继续之前触发 'secure' 事件。
ERR_TLS_PROTOCOL_VERSION_CONFLICT#
尝试设置 TLS 协议 minVersion 或 maxVersion 与尝试显式设置 secureProtocol 冲突。
使用一种或另一种机制。
ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED#
未能设置 PSK 身份提示。 提示可能太长。
ERR_TLS_RENEGOTIATION_DISABLED#
试图在禁用 TLS 的套接字实例上重新协商 TLS。
ERR_TLS_REQUIRED_SERVER_NAME#
在使用 TLS 时,调用 server.addContext() 方法时没有在第一个参数中提供主机名。
ERR_TLS_SESSION_ATTACK#
检测到过多的 TLS 重新协商,这是拒绝服务攻击的潜在载体。
ERR_TLS_SNI_FROM_SERVER#
试图从 TLS 服务器端套接字发出服务器名称指示,它仅对客户端有效。
ERR_TRACE_EVENTS_CATEGORY_REQUIRED#
trace_events.createTracing() 方法至少需要一个跟踪事件类别。
ERR_TRACE_EVENTS_UNAVAILABLE#
无法加载 node:trace_events 模块,因为 Node.js 是使用 --without-v8-platform 标志编译的。
ERR_TRANSFORM_ALREADY_TRANSFORMING#
Transform 流在它仍在转换时完成。
ERR_TRANSFORM_WITH_LENGTH_0#
Transform 流完成,数据仍在写入缓冲区中。
ERR_TTY_INIT_FAILED#
由于系统错误,终端的初始化失败。
ERR_UNAVAILABLE_DURING_EXIT#
函数在 process.on('exit') 句柄中调用,不应在 process.on('exit') 句柄中调用。
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET#
process.setUncaughtExceptionCaptureCallback() 被调用了两次,没有先将回调重置为 null。
此错误旨在防止意外覆盖从另一个模块注册的回调。
ERR_UNESCAPED_CHARACTERS#
收到包含未转义字符的字符串。
ERR_UNHANDLED_ERROR#
发生未处理的错误(例如,当 EventEmitter 触发 'error' 事件但未注册 'error' 句柄时)。
ERR_UNKNOWN_BUILTIN_MODULE#
用于识别通常不应由用户代码触发的特定类型的内部 Node.js 错误。 此错误的实例指向 Node.js 二进制文件本身的内部错误。
ERR_UNKNOWN_CREDENTIAL#
传入了不存在的 Unix 群组或用户标识符。
ERR_UNKNOWN_ENCODING#
传给 API 的编码选项无效或未知。
ERR_UNKNOWN_FILE_EXTENSION#
试图加载具有未知或不受支持的文件扩展名的模块。
ERR_UNKNOWN_MODULE_FORMAT#
试图加载格式未知或不受支持的模块。
ERR_UNKNOWN_SIGNAL#
无效或未知的进程信号已传给需要有效信号的 API(例如 subprocess.kill())。
ERR_UNSUPPORTED_DIR_IMPORT#
import 目录网址不受支持。
而是,在 package.json 文件的 "exports" 字段中,使用其名称自引用包和定义自定义的子路径。
import './'; // 不支持的
import './index.js'; // 支持的
import 'package-name'; // 支持的
ERR_UNSUPPORTED_ESM_URL_SCHEME#
不支持带有 file 和 data 以外的网址方案的 import。
ERR_USE_AFTER_CLOSE#
试图使用已经关闭的东西。
ERR_VALID_PERFORMANCE_ENTRY_TYPE#
在使用性能计时 API(perf_hooks)时,找不到有效的性能条目类型。
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING#
未指定动态导入回调。
ERR_VM_MODULE_ALREADY_LINKED#
由于以下原因之一,尝试链接的模块不符合链接条件:
- 已链接(
linkingStatus为'linked') - 正在链接(
linkingStatus为'linking') - 此模块的链接失败(
linkingStatus为'errored')
ERR_VM_MODULE_CACHED_DATA_REJECTED#
传给模块构造函数的 cachedData 选项无效。
ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA#
不能为已经评估过的模块创建缓存数据。
ERR_VM_MODULE_DIFFERENT_CONTEXT#
从链接器函数返回的模块来自与父模块不同的上下文。 链接的模块必须共享相同的上下文。
ERR_VM_MODULE_LINK_FAILURE#
由于失败,模块无法链接。
ERR_VM_MODULE_NOT_MODULE#
链接 promise 的履行值不是 vm.Module 对象。
ERR_VM_MODULE_STATUS#
当前模块的状态不允许此操作。 错误的具体含义取决于具体的函数。
ERR_WASI_ALREADY_STARTED#
WASI 实例已经启动。
ERR_WASI_NOT_STARTED#
WASI 实例尚未启动。
ERR_WEBASSEMBLY_RESPONSE#
已传给 WebAssembly.compileStreaming 或 WebAssembly.instantiateStreaming 的 Response 不是有效的 WebAssembly 响应。
ERR_WORKER_INIT_FAILED#
Worker 初始化失败。
ERR_WORKER_INVALID_EXEC_ARGV#
传给 Worker 构造函数的 execArgv 选项包含无效标志。
ERR_WORKER_NOT_RUNNING#
操作失败,因为 Worker 实例当前未运行。
ERR_WORKER_OUT_OF_MEMORY#
Worker 实例因达到其内存限制而终止。
ERR_WORKER_PATH#
工作线程主脚本的路径既不是绝对路径也不是以 ./ 或 ../ 开头的相对路径。
ERR_WORKER_UNSERIALIZABLE_ERROR#
从工作线程序列化未捕获异常的所有尝试都失败了。
ERR_WORKER_UNSUPPORTED_OPERATION#
工作线程不支持请求的功能。
ERR_ZLIB_INITIALIZATION_FAILED#
由于配置不正确,创建 zlib 对象失败。
HPE_HEADER_OVERFLOW#
接收到了太多的 HTTP 标头数据。
为了防止恶意或错误配置的客户端,如果接收到超过 8 KiB 的 HTTP 标头数据,则 HTTP 解析将中止,而不会创建请求或响应对象,并且将触发带有此代码的 Error。
HPE_UNEXPECTED_CONTENT_LENGTH#
服务器正在发送 Content-Length 标头和 Transfer-Encoding: chunked。
Transfer-Encoding: chunked 允许服务器为动态生成的内容维护 HTTP 持久连接。
在这种情况下,无法使用 Content-Length HTTP 标头。
使用 Content-Length 或 Transfer-Encoding: chunked。
MODULE_NOT_FOUND#
当尝试 require() 操作或加载程序入口点时,CommonJS 模块加载器无法解析模块文件。
弃用的 Node.js 错误码#
ERR_CANNOT_TRANSFER_OBJECT#
传给 postMessage() 的值包含不支持传输的对象。
ERR_CRYPTO_HASH_DIGEST_NO_UTF16#
UTF-16 编码用于 hash.digest()。
虽然 hash.digest() 方法确实允许传入 encoding 参数,使该方法返回字符串而不是 Buffer,但不支持 UTF-16 编码(例如 ucs 或 utf16le)。
ERR_HTTP2_FRAME_ERROR#
在 HTTP/2 会话中发送单个帧失败时使用。
ERR_HTTP2_HEADERS_OBJECT#
在需要 HTTP/2 标头对象时使用。
ERR_HTTP2_HEADER_REQUIRED#
当 HTTP/2 消息中缺少所需的标头时使用。
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND#
HTTP/2 信息标头必须只在调用 Http2Stream.prototype.respond() 方法之前发送。
ERR_HTTP2_STREAM_CLOSED#
当在已关闭的 HTTP/2 流上执行操作时使用。
ERR_HTTP_INVALID_CHAR#
当在 HTTP 响应状态消息(原因短语)中发现无效字符时使用。
ERR_INDEX_OUT_OF_RANGE#
给定的索引超出了可接受的范围(例如负偏移量)。
ERR_INVALID_OPT_VALUE#
在选项对象中传入了无效或意外的值。
ERR_INVALID_OPT_VALUE_ENCODING#
传入了无效或未知的文件编码。
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST#
此错误码在 Node.js v15.0.0 中被 ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST 替换,因为它不再准确,因为现在还存在其他类型的可传输对象。
ERR_NAPI_CONS_PROTOTYPE_OBJECT#
当 Constructor.prototype 不是对象时,由 Node-API 使用。
ERR_NETWORK_IMPORT_BAD_RESPONSE#
当通过网络导入模块时收到响应但无效。
ERR_NETWORK_IMPORT_DISALLOWED#
网络模块试图加载另一个不允许加载的模块。 可能这个限制是出于安全原因。
ERR_NO_LONGER_SUPPORTED#
以不受支持的方式调用了 Node.js API,例如 Buffer.write(string, encoding, offset[, length])。
ERR_OPERATION_FAILED#
操作失败。 这通常用于表示一般的异步操作失败。
ERR_OUTOFMEMORY#
通常用于识别操作导致内存不足的情况。
ERR_PARSE_HISTORY_DATA#
node:repl 模块无法解析交互式解释器历史文件中的数据。
ERR_SOCKET_CANNOT_SEND#
无法在套接字上发送数据。
ERR_STDERR_CLOSE#
试图关闭 process.stderr 流。
根据设计,Node.js 不允许用户代码关闭 stdout 或 stderr 流。
ERR_STDOUT_CLOSE#
试图关闭 process.stdout 流。
根据设计,Node.js 不允许用户代码关闭 stdout 或 stderr 流。
ERR_STREAM_READ_NOT_IMPLEMENTED#
当尝试使用尚未实现 readable._read() 的可读流时使用。
ERR_TLS_RENEGOTIATION_FAILED#
当 TLS 重新协商请求以非特定方式失败时使用。
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER#
在序列化过程中遇到内存不是由 JavaScript 引擎或 Node.js 管理的 SharedArrayBuffer。
这样的 SharedArrayBuffer 无法序列化。
这只会发生在原生插件在 "externalized" 模式下创建 SharedArrayBuffers 或将现有的 SharedArrayBuffer 置于外部模式时。
ERR_UNKNOWN_STDIN_TYPE#
尝试使用未知的 stdin 文件类型启动 Node.js 进程。
此错误通常表明 Node.js 本身存在错误,尽管用户代码可能会触发它。
ERR_UNKNOWN_STREAM_TYPE#
尝试使用未知的 stdout 或 stderr 文件类型启动 Node.js 进程。
此错误通常表明 Node.js 本身存在错误,尽管用户代码可能会触发它。
ERR_V8BREAKITERATOR#
使用了 V8 BreakIterator API,但未安装完整的 ICU 数据集。
ERR_VALUE_OUT_OF_RANGE#
当给定值超出可接受范围时使用。
ERR_VM_MODULE_NOT_LINKED#
模块必须在实例化前成功链接。
ERR_VM_MODULE_LINKING_ERRORED#
链接器函数返回链接失败的模块。
ERR_WORKER_UNSUPPORTED_EXTENSION#
用于工作程序主脚本的路径名具有未知的文件扩展名。
ERR_ZLIB_BINDING_CLOSED#
在 zlib 对象已经关闭后尝试使用它时使用。
ERR_CPU_USAGE#
无法处理来自 process.cpuUsage 的原生调用。