Node.js v21.7.2 文件
- Node.js v21.7.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_CUSTOM_SETTINGS
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_ATTRIBUTE_TYPE_INCOMPATIBLE
ERR_IMPORT_ATTRIBUTE_MISSING
ERR_IMPORT_ATTRIBUTE_UNSUPPORTED
ERR_INCOMPATIBLE_OPTION_PAIR
ERR_INPUT_TYPE_NOT_ALLOWED
ERR_INSPECTOR_ALREADY_ACTIVATED
ERR_INSPECTOR_ALREADY_CONNECTED
ERR_INSPECTOR_CLOSED
ERR_INSPECTOR_COMMAND
ERR_INSPECTOR_NOT_ACTIVE
ERR_INSPECTOR_NOT_AVAILABLE
ERR_INSPECTOR_NOT_CONNECTED
ERR_INSPECTOR_NOT_WORKER
ERR_INTERNAL_ASSERTION
ERR_INVALID_ADDRESS_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_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_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_NOT_IN_SINGLE_EXECUTABLE_APPLICATION
ERR_NOT_SUPPORTED_IN_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_SINGLE_EXECUTABLE_APPLICATION_ASSET_NOT_FOUND
ERR_SOCKET_ALREADY_BOUND
ERR_SOCKET_BAD_BUFFER_SIZE
ERR_SOCKET_BAD_PORT
ERR_SOCKET_BAD_TYPE
ERR_SOCKET_BUFFER_SIZE
ERR_SOCKET_CLOSED
ERR_SOCKET_CLOSED_BEFORE_CONNECTION
ERR_SOCKET_CONNECTION_TIMEOUT
ERR_SOCKET_DGRAM_IS_CONNECTED
ERR_SOCKET_DGRAM_NOT_CONNECTED
ERR_SOCKET_DGRAM_NOT_RUNNING
ERR_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_ALPN_CALLBACK_INVALID_RESULT
ERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLS
ERR_TLS_CERT_ALTNAME_FORMAT
ERR_TLS_CERT_ALTNAME_INVALID
ERR_TLS_DH_PARAM_SIZE
ERR_TLS_HANDSHAKE_TIMEOUT
ERR_TLS_INVALID_CONTEXT
ERR_TLS_INVALID_PROTOCOL_METHOD
ERR_TLS_INVALID_PROTOCOL_VERSION
ERR_TLS_INVALID_STATE
ERR_TLS_PROTOCOL_VERSION_CONFLICT
ERR_TLS_PSK_SET_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_UNSUPPORTED_RESOLVE_REQUEST
ERR_USE_AFTER_CLOSE
ERR_VALID_PERFORMANCE_ENTRY_TYPE
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG
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_CHUNK_EXTENSIONS_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_INVALID_TRANSFER_OBJECT
ERR_IMPORT_ASSERTION_TYPE_FAILED
ERR_IMPORT_ASSERTION_TYPE_MISSING
ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
ERR_MISSING_TRANSFERABLE_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
- 錯誤
-
► 索引
- 斷言測試
- 非同步內容追蹤
- 非同步掛鉤
- 緩衝區
- C++ 外掛程式
- 使用 Node-API 的 C/C++ 外掛程式
- C++ 嵌入式 API
- 子程序
- 叢集
- 命令列選項
- 主控台
- Corepack
- 加密
- 偵錯器
- 已棄用的 API
- 診斷頻道
- DNS
- 網域
- 錯誤
- 事件
- 檔案系統
- 全域變數
- HTTP
- HTTP/2
- HTTPS
- 檢查器
- 國際化
- 模組:CommonJS 模組
- 模組:ECMAScript 模組
- 模組:
node:module
API - 模組:套件
- 網路
- 作業系統
- 路徑
- 效能掛鉤
- 權限
- 程序
- Punycode
- 查詢字串
- 讀取命令列
- REPL
- 報告
- 單一可執行應用程式
- 串流
- 字串解碼器
- 測試執行器
- 計時器
- TLS/SSL
- 追蹤事件
- TTY
- UDP/資料報
- URL
- 公用程式
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- 工作執行緒
- Zlib
- ► 其他版本
- ► 選項
錯誤#
在 Node.js 中執行的應用程式通常會遇到四種類別的錯誤
- 標準 JavaScript 錯誤,例如 <EvalError>、<SyntaxError>、<RangeError>、<ReferenceError>、<TypeError> 和 <URIError>。
- 由底層作業系統限制所觸發的系統錯誤,例如嘗試開啟不存在的檔案或嘗試透過已關閉的 socket 傳送資料。
- 由應用程式程式碼觸發的使用者指定錯誤。
AssertionError
是一種類型的特殊錯誤,當 Node.js 偵測到不應該發生的例外邏輯違規時會觸發。這些通常是由node:assert
模組所引發。
由 Node.js 引發的所有 JavaScript 和系統錯誤都會繼承或成為標準 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
旗標,了解處理程序將如何對應未處理的 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
處理的例外狀況。沒有此類方法的完整清單;請參閱各方法的文件,以確定所需的適當錯誤處理機制。
'error'
事件機制的用途最常見於 基於串流 和 基於事件發射器 的 API,它們本身表示隨著時間推移的一系列非同步操作(相對於可能通過或失敗的單一操作)。
對於所有 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
類別的實例,或繼承自 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
<Object>constructorOpt
<Function>
在 targetObject
上建立一個 .stack
屬性,當存取時會傳回一個字串,表示呼叫 Error.captureStackTrace()
時的程式碼位置。
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
追蹤的第一行會加上前綴 ${myObject.name}: ${myObject.message}
。
選用的 constructorOpt
參數接受一個函式。如果提供,所有在 constructorOpt
上方的框架,包含 constructorOpt
,都會從產生的堆疊追蹤中省略。
constructorOpt
參數對於隱藏錯誤產生實作的細節對使用者很有用。例如
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Error.stackTraceLimit
#
Error.stackTraceLimit
屬性指定堆疊追蹤收集的堆疊框架數目(無論是由 new Error().stack
或 Error.captureStackTrace(obj)
產生)。
預設值為 10
,但可以設定為任何有效的 JavaScript 數字。變更會影響在變更值之後擷取的任何堆疊追蹤。
如果設定為非數字值,或設定為負數,堆疊追蹤不會擷取任何框架。
error.cause
#
如果存在,error.cause
屬性是 Error
的根本原因。當捕捉一個錯誤並拋出一個訊息或代碼不同的新錯誤時,會使用它來存取原始錯誤。
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)
第一行格式為 <錯誤類別名稱>: <錯誤訊息>
,後面接著一系列堆疊框架(每一行以「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
#
表示斷言失敗。有關詳細資訊,請參閱 類別: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
<字串> 如果存在,則表示網路連線失敗的位址code
<字串> 字串錯誤碼dest
<字串> 如果存在,則表示報告檔案系統錯誤時的檔案路徑目的地errno
<數字> 系統提供的錯誤號碼info
<物件> 如果存在,則表示錯誤狀況的其他詳細資料message
<字串> 系統提供的錯誤人可讀取說明path
<字串> 如果存在,則為報告檔案系統錯誤時的檔案路徑port
<數字> 如果存在,則為無法使用的網路連線埠syscall
<字串> 觸發錯誤的系統呼叫名稱
error.address
#
如果存在,error.address
是描述網路連線失敗的位址字串。
error.code
#
error.code
屬性是表示錯誤代碼的字串。
error.dest
#
如果存在,error.dest
是報告檔案系統錯誤時的檔案路徑目的地。
error.errno
#
error.errno
屬性是對應於 libuv 錯誤處理
中定義的錯誤代碼的負數。
在 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
屬性是一個描述 syscall 失敗的字串。
常見的系統錯誤#
這是撰寫 Node.js 程式時常見的系統錯誤清單。如需完整清單,請參閱 errno
(3) 手冊頁。
-
EACCES
(拒絕存取):嘗試以其檔案存取權限禁止的方式存取檔案。 -
EADDRINUSE
(地址已使用):由於本地系統上的另一個伺服器已佔用該地址,因此嘗試將伺服器(net
、http
或https
)繫結到本地地址失敗。 -
ECONNREFUSED
(拒絕連線):無法建立連線,因為目標機器主動拒絕。這通常是因為嘗試連線到外國主機上未啟用的服務所致。 -
ECONNRESET
(同儕重設連線):連線被同儕強制關閉。這通常是因為遠端 socket 上的連線因逾時或重新開機而中斷。通常透過http
和net
模組遇到。 -
EEXIST
(檔案已存在):現有檔案為作業目標,但作業需要目標不存在。 -
EISDIR
(為目錄):作業預期為檔案,但給定的路徑名稱為目錄。 -
EMFILE
(系統中開啟的檔案過多):系統允許的最大檔案描述子數量已達上限,且在至少關閉一個檔案描述子之前,無法滿足其他描述子的要求。這會在一次開啟多個檔案時發生,特別是在檔案描述子限制較低的系統(尤其是 macOS)中。若要解決限制過低的問題,請在將執行 Node.js 程序的同一個 shell 中執行ulimit -n 2048
。 -
ENOENT
(無此類檔案或目錄):通常由fs
作業提出,表示指定路徑名稱的組成不存在。系統無法透過給定的路徑找到任何實體(檔案或目錄)。 -
ENOTDIR
(非目錄):給定路徑名稱的組成存在,但並非預期的目錄。通常由fs.readdir
提出。 -
ENOTEMPTY
(目錄非空):有項目的目錄為作業目標,但作業需要目錄為空,通常為fs.unlink
。 -
ENOTFOUND
(DNS 查詢失敗):表示 DNS 失敗,可能是EAI_NODATA
或EAI_NONAME
。這不是標準 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 嘗試取得受 權限模型 限制的資源時,就會觸發此錯誤。
ERR_AMBIGUOUS_ARGUMENT
#
函數參數的使用方式暗示函數簽章可能被誤解。當 assert.throws(block, message)
中的 message
參數與 block
拋出的錯誤訊息相符時,node:assert
模組會引發此錯誤,因為這種用法暗示使用者認為 message
是預期的訊息,而不是 AssertionError
在 block
沒有拋出時會顯示的訊息。
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 引擎 Context 中,從附加元件或嵌入式程式碼建立 Node.js Buffer
實例時發生錯誤。傳遞給 Buffer
方法的資料會在方法傳回時釋放。
遇到此錯誤時,建立 Buffer
實例的替代方案可能是建立一個正常的 Uint8Array
,它只與結果物件的原型不同。Uint8Array
通常在所有 Buffer
可用的 Node.js 核心 API 中被接受;它們在所有 Context 中都可用。
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 的 vm 背景尚未初始化。這可能會在建立背景時發生錯誤(且已捕獲)時發生,例如,在建立背景時,配置失敗或達到最大呼叫堆疊大小。
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED
#
要求的 OpenSSL 引擎(例如,透過 clientCertEngine
或 privateKeyEngine
TLS 選項)不受使用的 OpenSSL 版本支援,可能是因為編譯時旗標 OPENSSL_NO_ENGINE
。
ERR_CRYPTO_ECDH_INVALID_FORMAT
#
傳遞給 crypto.ECDH()
類別 getPublicKey()
方法的 format
引數值無效。
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY
#
傳遞給 crypto.ECDH()
類別 computeSecret()
方法的 key
引數值無效。這表示公開金鑰不在橢圓曲線之外。
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 Key。
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 Web Key Elliptic Curve Registry 使用。
ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE
#
金鑰的不對稱金鑰類型未註冊供 JSON Web Key Types Registry 使用。
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()
方法。
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
#
在等待必要的 host/port 空閒時,偵錯器 超時。
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()
複製到 socket。
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
已指定一個 socket。
ERR_HTTP_SOCKET_ENCODING
#
根據 RFC 7230 第 3 節,不允許變更 socket 編碼。
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
的 socket。
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_CUSTOM_SETTINGS
#
已超過支援的客製設定數目 (10)。
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_ATTRIBUTE_TYPE_INCOMPATIBLE
#
提供了匯入 type
屬性,但指定的模組為不同類型。
ERR_IMPORT_ATTRIBUTE_MISSING
#
缺少匯入屬性,導致無法匯入指定的模組。
ERR_IMPORT_ATTRIBUTE_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 的 Node.js API(例如 fs
模組中的特定函式)遇到具有不相容主機的檔案 URL。此情況僅會發生在僅支援 localhost
或空主機的類 Unix 系統上。
ERR_INVALID_FILE_URL_PATH
#
使用 file:
URL 的 Node.js API(例如 fs
模組中的特定函式)遇到具有不相容路徑的檔案 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
#
使用效能計時 API (perf_hooks
) 時,效能標記無效。
ERR_INVALID_PROTOCOL
#
傳遞無效的 options.protocol
至 http.request()
。
ERR_INVALID_REPL_EVAL_CONFIG
#
在 REPL
設定中同時設定 breakEvalOnSigint
和 eval
選項,此設定不受支援。
ERR_INVALID_REPL_INPUT
#
無法在 REPL
中使用輸入。此錯誤發生的條件在 REPL
文件中說明。
ERR_INVALID_RETURN_PROPERTY
#
如果函數選項在執行時未提供其回傳物件屬性之一的有效值,則會擲回此錯誤。
ERR_INVALID_RETURN_PROPERTY_VALUE
#
如果函數選項在執行時未提供其回傳物件屬性之一的預期值類型,則會擲回此錯誤。
ERR_INVALID_RETURN_VALUE
#
如果函數選項在執行時未回傳預期的值類型,例如當函數預期回傳承諾時,則會擲回此錯誤。
ERR_INVALID_STATE
#
表示因無效狀態而無法完成操作。例如,物件可能已遭毀損,或可能正在執行其他操作。
ERR_INVALID_SYNC_FORK_INPUT
#
Buffer
、TypedArray
、DataView
或 string
已提供為非同步分岔的 stdio 輸入。請參閱 child_process
模組的文件以取得更多資訊。
ERR_INVALID_THIS
#
Node.js API 函數已使用不相容的 this
值呼叫。
const urlSearchParams = new URLSearchParams('foo=bar&baz=new');
const buf = Buffer.alloc(1);
urlSearchParams.has.call(buf, 'foo');
// Throws a TypeError with code 'ERR_INVALID_THIS'
ERR_INVALID_TUPLE
#
提供給 WHATWG URLSearchParams
建構函式 的 iterable
中的元素並未表示 [name, value]
元組,亦即如果元素不可迭代,或不包含兩個元素。
ERR_INVALID_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
的訊息無法在目標vmContext
中反序列化。目前並非所有 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。這是因為嵌入器不支援 Worker 所導致。特別是,標準的 Node.js 建置不會發生此錯誤。
ERR_MODULE_NOT_FOUND
#
ECMAScript 模組載入器在嘗試執行 import
作業或載入程式進入點時,無法解析模組檔案。
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
#
儘管 Node.js 沒有建置 V8 啟動快照,但仍嘗試使用只能在建置 V8 啟動快照時使用的操作。
ERR_NOT_IN_SINGLE_EXECUTABLE_APPLICATION
#
當不在單一可執行檔應用程式中時,無法執行此操作。
ERR_NOT_SUPPORTED_IN_SNAPSHOT
#
嘗試執行在建置啟動快照時不支援的操作。
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> 值,或如果為類型為 <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_SINGLE_EXECUTABLE_APPLICATION_ASSET_NOT_FOUND
#
傳遞了一個金鑰給單一可執行應用程式 API 來識別資產,但找不到任何符合條件的項目。
ERR_SOCKET_ALREADY_BOUND
#
嘗試繫結一個已經繫結的 socket。
ERR_SOCKET_BAD_BUFFER_SIZE
#
在 dgram.createSocket()
中傳遞給 recvBufferSize
或 sendBufferSize
選項的無效 (負數) 大小。
ERR_SOCKET_BAD_PORT
#
一個 API 函式預期一個埠 >= 0 且 < 65536,但收到了無效值。
ERR_SOCKET_BAD_TYPE
#
API 函數預期一個 socket 類型 (udp4
或 udp6
) 接收無效值。
ERR_SOCKET_BUFFER_SIZE
#
使用 dgram.createSocket()
時,無法確定接收或傳送 Buffer
的大小。
ERR_SOCKET_CLOSED
#
嘗試對已關閉的 socket 進行操作。
ERR_SOCKET_CLOSED_BEFORE_CONNECTION
#
在連線 socket 上呼叫 net.Socket.write()
時,且在建立連線前 socket 已關閉。
ERR_SOCKET_CONNECTION_TIMEOUT
#
使用家族自動選取演算法時,socket 無法在允許的逾時時間內連線到 DNS 回傳的任何位址。
ERR_SOCKET_DGRAM_IS_CONNECTED
#
已連線的 socket 上呼叫 dgram.connect()
。
ERR_SOCKET_DGRAM_NOT_CONNECTED
#
在已中斷的 socket 上呼叫 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_ALPN_CALLBACK_INVALID_RESULT
#
當 ALPNCallback
傳回的值不在用戶端提供的 ALPN 協定清單中時,會擲出此錯誤。
ERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLS
#
如果 TLS 選項同時包含 ALPNProtocols
和 ALPNCallback
,在建立 TLSServer
時會擲出此錯誤。這些選項互斥。
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 Socket 必須已連線且安全建立。請確保在繼續之前已發出「安全」事件。
ERR_TLS_PROTOCOL_VERSION_CONFLICT
#
嘗試設定 TLS 協定 minVersion
或 maxVersion
與明確設定 secureProtocol
衝突。使用其中一種機制。
ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED
#
無法設定 PSK 身分提示。提示可能太長。
ERR_TLS_RENEGOTIATION_DISABLED
#
嘗試在已停用重新協商的 socket 實例上重新協商 TLS。
ERR_TLS_REQUIRED_SERVER_NAME
#
使用 TLS 時,呼叫 server.addContext()
方法,但未在第一個參數中提供主機名稱。
ERR_TLS_SESSION_ATTACK
#
偵測到過量的 TLS 重新協商,這可能是阻斷服務攻擊的潛在媒介。
ERR_TLS_SNI_FROM_SERVER
#
嘗試從 TLS 伺服器端 socket 發出伺服器名稱指示,這僅在用戶端有效。
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 不受支援。請改為 使用名稱自我參照套件,並在 "exports"
欄位中 定義自訂子路徑 package.json
檔案。
import './'; // unsupported
import './index.js'; // supported
import 'package-name'; // supported
ERR_UNSUPPORTED_ESM_URL_SCHEME
#
import
不支援 file
和 data
以外的 URL 架構。
ERR_UNSUPPORTED_RESOLVE_REQUEST
#
嘗試解析無效的模組參考。這可能發生在使用下列方式匯入或呼叫 import.meta.resolve()
的情況:
try {
// Trying to import the package 'bare-specifier' from a `data:` URL module:
await import('data:text/javascript,import "bare-specifier"');
} catch (e) {
console.log(e.code); // ERR_UNSUPPORTED_RESOLVE_REQUEST
}
ERR_USE_AFTER_CLOSE
#
嘗試使用已經關閉的某個東西。
ERR_VALID_PERFORMANCE_ENTRY_TYPE
#
使用效能計時 API(perf_hooks
)時,找不到任何有效的效能項目類型。
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG
#
在沒有 --experimental-vm-modules
的情況下,呼叫動態匯入回呼。
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
#
連結承諾的已完成值不是 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 標頭資料。為了防範惡意或設定錯誤的用戶端,如果收到的 HTTP 標頭資料超過 8 KiB,則 HTTP 分析會中斷,且不會建立要求或回應物件,並會發出具有此程式碼的 Error
。
HPE_CHUNK_EXTENSIONS_OVERFLOW
#
收到過多的區塊擴充資料。為了防範惡意或設定錯誤的用戶端,如果收到的資料超過 16 KiB,則會發出具有此程式碼的 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_INVALID_TRANSFER_OBJECT
#
傳入無效的傳輸物件至 postMessage()
。
ERR_IMPORT_ASSERTION_TYPE_FAILED
#
匯入斷言失敗,導致無法匯入指定的模組。
ERR_IMPORT_ASSERTION_TYPE_MISSING
#
缺少匯入斷言,導致無法匯入指定的模組。
ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED
#
此版本的 Node.js 不支援匯入屬性。
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
#
此錯誤碼已在 Node.js v15.0.0 中由 ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
取代,因為現在存在其他類型的可傳輸物件,因此不再準確。
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
#
傳遞給 postMessage()
呼叫的物件中,有一個物件需要明確列在 transferList
參數中,但未提供在該呼叫的 transferList
中。通常,這是一個 MessagePort
。
在 v15.0.0 之前的 Node.js 版本中,這裡使用的錯誤碼是 ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
。但是,可傳輸物件類型的集合已擴充為涵蓋比 MessagePort
更多的類型。
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
#
無法在 socket 上傳送資料。
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
的原生呼叫。