- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲(Buffer)
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入 Node环境
- 子进程(Child processes)
- 集群(Cluster)
- 命令行选项
- 控制台(Console)
- 核心包(Corepack)
- 加密(Crypto)
- 调试器(Debugger)
- 已弃用的 API
- 诊断通道(Diagnostics Channel)
- 域名系统(DNS)
- 域(Domain)
- 错误(Errors)
- 事件(Events)
- 文件系统(File system)
- 全局变量(Globals)
- HTTP
- HTTP/2
- HTTPS
- 检查器(Inspector)
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:packages 模块
- 网络(Net)
- 系统(OS)
- 路径(Path)
- 性能挂钩(Performance hooks)
- 性能挂钩(Permissions)
- 进程(Process)
- Punycode 国际化域名编码
- 查询字符串(Query strings)
- 命令行库(Readline)
- REPL 交互式编程环境
- 诊断报告
- 单个可执行应用程序
- Stream 流
- 字符串解码器
- 单元测试
- 定时器(Timers)
- 传输层安全/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用程序
- V8
- 虚拟机
- WebAssembly
- Web加密 API(Web Crypto API)
- 网络流 API(Web Streams API)
- 工作线程(Worker threads)
- zlib
Node.js v18.18.2 文档
- Node.js v18.18.2
-
►
目录
- 错误
- 错误传播和拦截
- 类:
Error
- 类:
AssertionError
- 类:
RangeError
- 类:
ReferenceError
- 类:
SyntaxError
- 类:
SystemError
- 类:
TypeError
- 异常与错误
- 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_KEY_OBJECT_TYPE
ERR_CRYPTO_INVALID_KEYLEN
ERR_CRYPTO_INVALID_KEYPAIR
ERR_CRYPTO_INVALID_KEYTYPE
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_INVALID_PARAMETER
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_DLOPEN_DISABLED
ERR_DLOPEN_FAILED
ERR_DIR_CLOSED
ERR_DIR_CONCURRENT_OPERATION
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_HTTP_BODY_NOT_ALLOWED
ERR_HTTP_CONTENT_LENGTH_MISMATCH
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_FS_INVALID_SYMLINK_TYPE
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_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_HEADER_SINGLE_VALUE
ERR_HTTP2_HEADERS_AFTER_RESPOND
ERR_HTTP2_HEADERS_SENT
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_INVALID_FRAMES
ERR_HTTP2_TRAILERS_ALREADY_SENT
ERR_HTTP2_TRAILERS_NOT_READY
ERR_HTTP2_UNSUPPORTED_PROTOCOL
ERR_ILLEGAL_CONSTRUCTOR
ERR_IMPORT_ASSERTION_TYPE_FAILED
ERR_IMPORT_ASSERTION_TYPE_MISSING
ERR_IMPORT_ASSERTION_TYPE_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_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_PERFORMANCE_MARK
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_TRANSFER_OBJECT
ERR_INVALID_TUPLE
ERR_INVALID_URI
ERR_INVALID_URL
ERR_INVALID_URL_SCHEME
ERR_IPC_CHANNEL_CLOSED
ERR_IPC_DISCONNECTED
ERR_IPC_ONE_PIPE
ERR_IPC_SYNC_FORK
ERR_LOADER_CHAIN_INCOMPLETE
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
ERR_MANIFEST_UNKNOWN_ONERROR
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_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
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_NAPI_TSFN_START_IDLE_LOOP
ERR_NAPI_TSFN_STOP_IDLE_LOOP
ERR_NOT_BUILDING_SNAPSHOT
ERR_NO_CRYPTO
ERR_NO_ICU
ERR_NON_CONTEXT_AWARE_DISABLED
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_REQUIRE_ESM
ERR_SCRIPT_EXECUTION_INTERRUPTED
ERR_SCRIPT_EXECUTION_TIMEOUT
ERR_SERVER_ALREADY_LISTEN
ERR_SERVER_NOT_RUNNING
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_DGRAM_IS_CONNECTED
ERR_SOCKET_DGRAM_NOT_CONNECTED
ERR_SOCKET_DGRAM_NOT_RUNNING
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_UNSHIFT_AFTER_END_EVENT
ERR_STREAM_WRAP
ERR_STREAM_WRITE_AFTER_END
ERR_STRING_TOO_LONG
ERR_SYNTHETIC
ERR_SYSTEM_ERROR
ERR_TAP_LEXER_ERROR
ERR_TAP_PARSER_ERROR
ERR_TAP_VALIDATION_ERROR
ERR_TEST_FAILURE
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_IDENTIY_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_USE_AFTER_CLOSE
ERR_VALID_PERFORMANCE_ENTRY_TYPE
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
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_MODULE_LINK_FAILURE
ERR_VM_MODULE_NOT_MODULE
ERR_VM_MODULE_STATUS
ERR_WASI_ALREADY_STARTED
ERR_WASI_NOT_STARTED
ERR_WEBASSEMBLY_RESPONSE
ERR_WORKER_INIT_FAILED
ERR_WORKER_INVALID_EXEC_ARGV
ERR_WORKER_NOT_RUNNING
ERR_WORKER_OUT_OF_MEMORY
ERR_WORKER_PATH
ERR_WORKER_UNSERIALIZABLE_ERROR
ERR_WORKER_UNSUPPORTED_OPERATION
ERR_ZLIB_INITIALIZATION_FAILED
HPE_HEADER_OVERFLOW
HPE_UNEXPECTED_CONTENT_LENGTH
MODULE_NOT_FOUND
- Legacy Node.js error codes
ERR_CANNOT_TRANSFER_OBJECT
ERR_CRYPTO_HASH_DIGEST_NO_UTF16
ERR_HTTP2_FRAME_ERROR
ERR_HTTP2_HEADERS_OBJECT
ERR_HTTP2_HEADER_REQUIRED
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND
ERR_HTTP2_STREAM_CLOSED
ERR_HTTP_INVALID_CHAR
ERR_INDEX_OUT_OF_RANGE
ERR_INVALID_OPT_VALUE
ERR_INVALID_OPT_VALUE_ENCODING
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
ERR_NAPI_CONS_PROTOTYPE_OBJECT
ERR_NETWORK_IMPORT_BAD_RESPONSE
ERR_NETWORK_IMPORT_DISALLOWED
ERR_NO_LONGER_SUPPORTED
ERR_OPERATION_FAILED
ERR_OUTOFMEMORY
ERR_PARSE_HISTORY_DATA
ERR_SOCKET_CANNOT_SEND
ERR_STDERR_CLOSE
ERR_STDOUT_CLOSE
ERR_STREAM_READ_NOT_IMPLEMENTED
ERR_TLS_RENEGOTIATION_FAILED
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER
ERR_UNKNOWN_STDIN_TYPE
ERR_UNKNOWN_STREAM_TYPE
ERR_V8BREAKITERATOR
ERR_VALUE_OUT_OF_RANGE
ERR_VM_MODULE_NOT_LINKED
ERR_VM_MODULE_LINKING_ERRORED
ERR_WORKER_UNSUPPORTED_EXTENSION
ERR_ZLIB_BINDING_CLOSED
ERR_CPU_USAGE
- 错误
-
►
索引
- Assertion testing
- Asynchronous context tracking
- Async hooks
- Buffer
- C++ addons
- C/C++ addons with Node-API
- C++ embedder API
- Child processes
- Cluster
- Command-line options
- Console
- Corepack
- Crypto
- Debugger
- Deprecated APIs
- Diagnostics Channel
- DNS
- Domain
- Errors
- Events
- File system
- Globals
- HTTP
- HTTP/2
- HTTPS
- Inspector
- Internationalization
- Modules: CommonJS modules
- Modules: ECMAScript modules
- Modules:
node:module
API - Modules: Packages
- Net
- 系统(OS)
- 路径(Path)
- Performance hooks
- Permissions
- 进程(Process)
- Punycode
- Query strings
- 命令行库(Readline)
- REPL 交互式编程环境
- Report
- Single executable applications
- Stream
- String decoder
- Test runner
- Timers
- TLS/SSL
- Trace events
- TTY
- UDP/datagram
- URL
- Utilities
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- Worker threads
- Zlib
- ► 其他版本
- ► 选项
目录
- 错误
- 错误传播和拦截
- 类:
Error
- 类:
AssertionError
- 类:
RangeError
- 类:
ReferenceError
- 类:
SyntaxError
- 类:
SystemError
- 类:
TypeError
- 异常与错误
- 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_KEY_OBJECT_TYPE
ERR_CRYPTO_INVALID_KEYLEN
ERR_CRYPTO_INVALID_KEYPAIR
ERR_CRYPTO_INVALID_KEYTYPE
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_INVALID_PARAMETER
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_DLOPEN_DISABLED
ERR_DLOPEN_FAILED
ERR_DIR_CLOSED
ERR_DIR_CONCURRENT_OPERATION
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_HTTP_BODY_NOT_ALLOWED
ERR_HTTP_CONTENT_LENGTH_MISMATCH
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_FS_INVALID_SYMLINK_TYPE
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_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_HEADER_SINGLE_VALUE
ERR_HTTP2_HEADERS_AFTER_RESPOND
ERR_HTTP2_HEADERS_SENT
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_INVALID_FRAMES
ERR_HTTP2_TRAILERS_ALREADY_SENT
ERR_HTTP2_TRAILERS_NOT_READY
ERR_HTTP2_UNSUPPORTED_PROTOCOL
ERR_ILLEGAL_CONSTRUCTOR
ERR_IMPORT_ASSERTION_TYPE_FAILED
ERR_IMPORT_ASSERTION_TYPE_MISSING
ERR_IMPORT_ASSERTION_TYPE_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_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_PERFORMANCE_MARK
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_TRANSFER_OBJECT
ERR_INVALID_TUPLE
ERR_INVALID_URI
ERR_INVALID_URL
ERR_INVALID_URL_SCHEME
ERR_IPC_CHANNEL_CLOSED
ERR_IPC_DISCONNECTED
ERR_IPC_ONE_PIPE
ERR_IPC_SYNC_FORK
ERR_LOADER_CHAIN_INCOMPLETE
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
ERR_MANIFEST_UNKNOWN_ONERROR
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_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
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_NAPI_TSFN_START_IDLE_LOOP
ERR_NAPI_TSFN_STOP_IDLE_LOOP
ERR_NOT_BUILDING_SNAPSHOT
ERR_NO_CRYPTO
ERR_NO_ICU
ERR_NON_CONTEXT_AWARE_DISABLED
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_REQUIRE_ESM
ERR_SCRIPT_EXECUTION_INTERRUPTED
ERR_SCRIPT_EXECUTION_TIMEOUT
ERR_SERVER_ALREADY_LISTEN
ERR_SERVER_NOT_RUNNING
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_DGRAM_IS_CONNECTED
ERR_SOCKET_DGRAM_NOT_CONNECTED
ERR_SOCKET_DGRAM_NOT_RUNNING
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_UNSHIFT_AFTER_END_EVENT
ERR_STREAM_WRAP
ERR_STREAM_WRITE_AFTER_END
ERR_STRING_TOO_LONG
ERR_SYNTHETIC
ERR_SYSTEM_ERROR
ERR_TAP_LEXER_ERROR
ERR_TAP_PARSER_ERROR
ERR_TAP_VALIDATION_ERROR
ERR_TEST_FAILURE
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_IDENTIY_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_USE_AFTER_CLOSE
ERR_VALID_PERFORMANCE_ENTRY_TYPE
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
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_MODULE_LINK_FAILURE
ERR_VM_MODULE_NOT_MODULE
ERR_VM_MODULE_STATUS
ERR_WASI_ALREADY_STARTED
ERR_WASI_NOT_STARTED
ERR_WEBASSEMBLY_RESPONSE
ERR_WORKER_INIT_FAILED
ERR_WORKER_INVALID_EXEC_ARGV
ERR_WORKER_NOT_RUNNING
ERR_WORKER_OUT_OF_MEMORY
ERR_WORKER_PATH
ERR_WORKER_UNSERIALIZABLE_ERROR
ERR_WORKER_UNSUPPORTED_OPERATION
ERR_ZLIB_INITIALIZATION_FAILED
HPE_HEADER_OVERFLOW
HPE_UNEXPECTED_CONTENT_LENGTH
MODULE_NOT_FOUND
- 旧版 Node.js 错误代码
ERR_CANNOT_TRANSFER_OBJECT
ERR_CRYPTO_HASH_DIGEST_NO_UTF16
ERR_HTTP2_FRAME_ERROR
ERR_HTTP2_HEADERS_OBJECT
ERR_HTTP2_HEADER_REQUIRED
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND
ERR_HTTP2_STREAM_CLOSED
ERR_HTTP_INVALID_CHAR
ERR_INDEX_OUT_OF_RANGE
ERR_INVALID_OPT_VALUE
ERR_INVALID_OPT_VALUE_ENCODING
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
ERR_NAPI_CONS_PROTOTYPE_OBJECT
ERR_NETWORK_IMPORT_BAD_RESPONSE
ERR_NETWORK_IMPORT_DISALLOWED
ERR_NO_LONGER_SUPPORTED
ERR_OPERATION_FAILED
ERR_OUTOFMEMORY
ERR_PARSE_HISTORY_DATA
ERR_SOCKET_CANNOT_SEND
ERR_STDERR_CLOSE
ERR_STDOUT_CLOSE
ERR_STREAM_READ_NOT_IMPLEMENTED
ERR_TLS_RENEGOTIATION_FAILED
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER
ERR_UNKNOWN_STDIN_TYPE
ERR_UNKNOWN_STREAM_TYPE
ERR_V8BREAKITERATOR
ERR_VALUE_OUT_OF_RANGE
ERR_VM_MODULE_NOT_LINKED
ERR_VM_MODULE_LINKING_ERRORED
ERR_WORKER_UNSUPPORTED_EXTENSION
ERR_ZLIB_BINDING_CLOSED
ERR_CPU_USAGE
错误#
在 Node.js 中运行的应用程序通常会遇到四类错误:
- 标准 JavaScript 错误,例如<EvalError>、<SyntaxError>、<RangeError>、 <ReferenceError>、<TypeError>和<URIError>。
- 由底层操作系统约束触发的系统错误,例如尝试打开不存在的文件或尝试通过关闭的套接字发送数据。
- 由应用程序代码触发的用户指定的错误。
AssertionError
是一类特殊的错误,当 Node.js 检测到不应该发生的异常逻辑违规时,可能会触发该错误。这些通常由node:assert
模块引发。
Node.js 引发的所有 JavaScript 和系统错误都继承自标准 JavaScript <Error> 类,或者是标准 JavaScript <Error>类的实例,并且保证至少提供该类上可用的属性。
错误传播和拦截#
Node.js 支持多种传播和处理应用程序运行时发生的错误的机制。如何报告和处理这些错误完全取决于Error
的类型和调用的 API 的风格。
所有 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.
}
对 JavaScript throw
机制的任何使用都会引发必须处理的异常
,否则 Node.js 进程将立即退出。
除了少数例外,同步API(任何不返回 <Promise>也不接受callback
函数的阻塞方法,例如
fs.readFileSync
)将使用throw
报告错误。
异步 API中发生的错误可以通过多种方式报告:
-
某些异步方法返回<Promise>,您应该始终考虑到它可能会被拒绝。请参阅
--unhandled-rejections
flag 以了解流程如何对未处理的 Promise 拒绝做出反应。const fs = require('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 })();
-
大多数接受
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 });
-
当对
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);
-
Node.js API 中的一些典型异步方法可能仍使用
throw
机制来引发必须使用try…catch
处理的异常。没有此类方法的完整列表;请参阅每种方法的文档以确定所需的适当错误处理机制。
对于基于流
和基于事件发射器的API,最常见的是使用'error'
事件机制,它们本身代表一段时间内的一系列异步操作(而不是可能通过或失败的单个操作) 。
对于所有 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'));
});
以这种方式生成的错误无法使用try…catch
拦截,因为它们是在调用代码已经退出后抛出的。
开发人员必须参考每种方法的文档来准确确定这些方法引发的错误是如何传播的。
类:Error
#
一个通用的 JavaScript <Error>对象,不表示错误发生的任何具体情况。Error
对象捕获“堆栈跟踪”,详细说明代码中实例化Error
的点,并可能提供错误的文本描述。
Node.js 生成的所有错误(包括所有系统和 JavaScript 错误)都将是Error
类的实例或继承自该类。
new Error(message[, options])
#
创建一个新的Error
对象并将error.message
属性设置为提供的文本消息。如果对象作为message
传递,则通过调用String(message)
生成文本消息。如果提供了cause
选项,则会将其分配给error.cause
属性。error.stack
属性将表示代码中调用new Error()
的点。堆栈跟踪依赖于V8 的堆栈跟踪 API。堆栈跟踪仅扩展到 (a)同步代码执行的开始处,或 (b) 属性Error.stackTraceLimit
给出的帧数,以较小者为准。
Error.captureStackTrace(targetObject[, constructorOpt])
#
在 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
的根本原因。它在捕获错误并抛出具有不同消息或代码的新错误时使用,以便仍然可以访问原始错误。
error.cause
属性通常通过调用
new Error(message, { 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)
第一行的格式为<error class name>: <error message>
,后面是一系列堆栈帧(每行以“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 模块系统)或其依赖项。<transport-protocol>:///url/to/module/file.mjs:line:column
,如果框架表示用户程序中的调用(使用 ES 模块系统)或其依赖项。
当访问error.stack
属性时,会延迟生成表示堆栈跟踪的字符串
。
堆栈跟踪捕获的帧数受Error.stackTraceLimit
或当前事件循环标记上可用帧数中较小者的限制
。
类:AssertionError
#
- 扩展:<错误.错误>
表示断言失败。有关详细信息,请参阅
Class: assert.AssertionError
。
类:RangeError
#
- 扩展:<错误.错误>
指示提供的参数不在函数可接受值的集合或范围内;无论是数字范围,还是给定函数参数的选项集之外。
require('node:net').connect(-1);
// Throws "RangeError: "port" option should be >= 0 and < 65536: -1"
Node.js 将立即生成并抛出RangeError
实例作为参数验证的形式。
类:ReferenceError
#
- 扩展:<错误.错误>
表示正在尝试访问未定义的变量。此类错误通常表示代码中的拼写错误或其他损坏的程序。
虽然客户端代码可能会生成并传播这些错误,但实际上,只有 V8 才会这样做。
doesNotExist;
// Throws ReferenceError, doesNotExist is not a variable in this program.
除非应用程序动态生成并运行代码,否则
ReferenceError
实例表示代码或其依赖项中存在错误。
类:SyntaxError
#
- 扩展:<错误.错误>
指示程序不是有效的 JavaScript。这些错误可能仅作为代码评估的结果而生成和传播。代码评估可能是由于eval
、Function
、require
或vm的结果而发生。这些错误几乎总是表明程序已损坏。
try {
require('node:vm').runInThisContext('binary ! isNotOk');
} catch (err) {
// 'err' will be a SyntaxError.
}
SyntaxError
实例在创建它们的上下文中是不可恢复的 - 它们只能被其他上下文捕获。
类:SystemError
#
- 扩展:<错误.错误>
当 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
(DNS 查找失败):表示EAI_NODATA
或EAI_NONAME
的 DNS 失败 。这不是标准 POSIX 错误。 -
EPERM
(不允许操作):尝试执行需要提升权限的操作。 -
EPIPE
(损坏的管道):对管道、套接字或 FIFO 的写入,没有进程读取数据。通常在net
和http
层遇到,表示正在写入的流的远程端已关闭。 -
ETIMEDOUT
(操作超时):连接或发送请求失败,因为连接方在一段时间后没有正确响应。通常由http
或net
遇到。通常表明socket.end()
未被正确调用。
类:TypeError
#
指示提供的参数不是允许的类型。例如,将函数传递给需要字符串的参数将是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 库。
error.reason
#
描述错误原因的人类可读字符串。
Node.js 错误代码#
ABORT_ERR
#
当操作被中止时使用(通常使用AbortController
)。
不使用AbortSignal
的API通常不会引发此代码的错误。
此代码不使用 Node.js 错误所使用的常规ERR_*
约定,以便与网络平台的AbortError
兼容。
ERR_ACCESS_DENIED
#
每当 Node.js 尝试访问受策略清单限制的资源时,就会触发一种特殊类型的错误。例如,process.binding
。
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 实例关联的 JS 引擎上下文中从插件或嵌入代码创建 Node.js Buffer
实例。传递给Buffer
方法的数据将在该方法返回时释放。
遇到此错误时,创建Buffer
实例的可能替代方法是创建普通的Uint8Array
,它仅在结果对象的原型上有所不同。Uint8Array
在所有 Node.js 核心 API 中通常被接受,其中Buffer
是;它们在所有上下文中都可用。
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
#
当在未指定 IPC 通道的情况下派生子进程时使用。
ERR_CHILD_PROCESS_STDIO_MAXBUFFER
#
当主进程尝试从子进程的 STDERR/STDOUT 读取数据,并且数据长度比 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 引擎(例如,通过clientCertEngine
或
privateKeyEngine
TLS 选项)不受正在使用的 OpenSSL 版本支持,可能是由于编译时标志OPENSSL_NO_ENGINE
。
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 Web 密钥。
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
#
Key 的椭圆曲线未在JSON Web Key Elliptic Curve Registry中注册使用 。
ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE
#
密钥的非对称密钥类型未在JSON Web 密钥类型注册表中注册使用 。
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
#
使用不同长度的 Buffer
、 TypedArray
或 DataView
参数调用crypto.timingSafeEqual()
。
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
设置 DNS 服务器失败。
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_HTTP_BODY_NOT_ALLOWED
#
ERR_HTTP_CONTENT_LENGTH_MISMATCH
#
响应正文大小与指定的内容长度标头值不匹配。
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_ASSIGNED
#
给定的ServerResponse
已分配一个套接字。
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
#
Http2Session
从连接的对等方收到
GOAWAY
帧后,可能无法打开新的 HTTP/2 流。
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/2 请求和响应中使用 HTTP/1 连接特定标头。
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 ping 被取消。
ERR_HTTP2_PING_LENGTH
#
HTTP/2 ping 有效负载的长度必须恰好为 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
#
已超出对等方发送的可接受的无效 HTTP/2 协议帧的限制(通过maxSessionInvalidFrames
选项指定) 。
ERR_HTTP2_TRAILERS_ALREADY_SENT
#
尾随标头已在Http2Stream
上发送。
ERR_HTTP2_TRAILERS_NOT_READY
#
在Http2Stream
对象上发出'wantTrailers'
事件之前,无法调用 http2stream.sendTrailers()
方法。仅当为Http2Stream
设置了waitForTrailers
选项时,才会发出'wantTrailers'
事件
。
ERR_HTTP2_UNSUPPORTED_PROTOCOL
#
http2.connect()
传递的 URL 使用除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
。id 小于-1 的情况永远不会发生。
ERR_INVALID_BUFFER_SIZE
#
对Buffer
执行了交换,但其大小与该操作不兼容。
ERR_INVALID_CHAR
#
在标头中检测到无效字符。
ERR_INVALID_CURSOR_POS
#
给定流上的游标无法移动到没有指定列的指定行。
ERR_INVALID_FD
#
文件描述符('fd')无效(例如,它是负值)。
ERR_INVALID_FD_TYPE
#
文件描述符(“fd”)类型无效。
ERR_INVALID_FILE_URL_HOST
#
使用file:
URL(例如
fs
模块中的某些函数)的 Node.js API遇到主机不兼容的文件 URL。这种情况只会发生在仅支持localhost
或空主机的类 Unix 系统上。
ERR_INVALID_FILE_URL_PATH
#
使用file:
URL(例如
fs
模块中的某些函数)的 Node.js API遇到路径不兼容的文件 URL。确定是否可以使用路径的确切语义取决于平台。
ERR_INVALID_HANDLE_TYPE
#
尝试通过 IPC 通信通道向子进程发送不受支持的“句柄”。请参阅subprocess.send()
和process.send()
了解更多信息。
ERR_INVALID_HTTP_TOKEN
#
提供了无效的 HTTP 令牌。
ERR_INVALID_IP_ADDRESS
#
IP 地址无效。
ERR_INVALID_MIME_SYNTAX
#
MIME 的语法无效。
ERR_INVALID_MODULE
#
尝试加载不存在或无效的模块。
ERR_INVALID_MODULE_SPECIFIER
#
导入的模块字符串是无效的 URL、包名称或包子路径说明符。
ERR_INVALID_OBJECT_DEFINE_PROPERTY
#
在对象的属性上设置无效属性时发生错误。
ERR_INVALID_PACKAGE_CONFIG
#
无效的package.json
文件解析失败。
ERR_INVALID_PACKAGE_TARGET
#
package.json
"exports"
字段包含尝试的模块解析的无效目标映射值。
ERR_INVALID_PERFORMANCE_MARK
#
使用 Performance Timing 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
作为异步 fork 的 stdio 输入提供。有关详细信息,请参阅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_TRANSFER_OBJECT
#
无效的传输对象传递给了postMessage()
。
ERR_INVALID_TUPLE
#
提供给WHATWG URLSearchParams
构造函数的 iterable
中的元素不表示[name, value]
元组 – 也就是说,如果元素不可迭代,或者不包含恰好有两个元素。
ERR_INVALID_URI
#
传递了无效的 URI。
ERR_INVALID_URL
#
无效的 URL 已传递给WHATWG URL
构造函数或旧版url.parse()
进行解析。抛出的错误对象通常有一个附加属性'input'
,其中包含无法解析的 URL。
ERR_INVALID_URL_SCHEME
#
尝试将不兼容方案(协议)的 URL 用于特定目的。它仅用于fs
模块中的WHATWG URL API支持
(该模块仅接受采用'file'
方案的 URL),但也可以在其他 Node.js API 中使用未来。
ERR_IPC_CHANNEL_CLOSED
#
尝试使用已关闭的 IPC 通信通道。
ERR_IPC_DISCONNECTED
#
尝试断开已断开连接的 IPC 通信通道。有关详细信息,请参阅child_process
模块的文档。
ERR_IPC_ONE_PIPE
#
尝试使用多个 IPC 通信通道创建子 Node.js 进程。有关详细信息,请参阅child_process
模块的文档。
ERR_IPC_SYNC_FORK
#
尝试使用同步分叉的 Node.js 进程打开 IPC 通信通道。有关详细信息,请参阅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
#
发布到MessagePort
的消息无法在目标
虚拟机 Context
中反序列化。目前,并非所有 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 平台不支持创建 Worker。这是由于缺乏对 Workers 的嵌入支持造成的。特别是,在 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"
字段不会导出请求的子路径。由于导出是封装的,因此未导出的私有内部模块无法通过包解析导入,除非使用绝对 URL。
ERR_PARSE_ARGS_INVALID_OPTION_VALUE
#
当strict
设置为true
时,如果为<string>
类型的选项提供了<boolean>值,或者如果<string>则由util.parseArgs()
抛出为<boolean>
类型的选项提供值。
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_CLOSED_BEFORE_CONNECTION
#
在连接套接字上调用net.Socket.write()
且套接字在连接建立之前已关闭时。
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
#
如果在 Socket 上设置了字符串解码器或者解码器位于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_TAP_LEXER_ERROR
#
表示词法分析器状态失败的错误。
ERR_TAP_PARSER_ERROR
#
表示解析器状态失败的错误。有关导致错误的令牌的其他信息可通过cause
属性获取。
ERR_TAP_VALIDATION_ERROR
#
此错误表示 TAP 验证失败。
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 套接字必须已连接并安全建立。确保在继续之前发出“安全”事件。
ERR_TLS_PROTOCOL_VERSION_CONFLICT
#
尝试设置 TLS 协议minVersion
或maxVersion
与尝试显式设置secureProtocol
发生冲突。使用一种机制或另一种机制。
ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED
#
设置 PSK 身份提示失败。提示可能太长。
ERR_TLS_RENEGOTIATION_DISABLED
#
尝试在禁用重新协商的套接字实例上重新协商 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
#
由于系统错误,TTY 初始化失败。
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
不支持目录 URL。相反,
使用包的名称自引用包,并在package.json
文件的"exports"
字段中定义自定义子路径。
import './'; // unsupported
import './index.js'; // supported
import 'package-name'; // supported
ERR_UNSUPPORTED_ESM_URL_SCHEME
#
不支持使用除file
和data
之外的 URL 方案的 import
。
ERR_USE_AFTER_CLOSE
#
试图使用已经关闭的东西。
ERR_VALID_PERFORMANCE_ENTRY_TYPE
#
使用 Performance Timing 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
#
Worker 主脚本的路径既不是绝对路径,也不是以./
或../
开头的相对路径。
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
模块无法解析 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
无法序列化。
仅当本机插件在“外部化”模式下创建SharedArrayBuffer
或将现有的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
的本机调用。