Ошибки
Приложения, работающие в Node.js, обычно сталкиваются с четырьмя категориями ошибок:
- Стандартные ошибки JavaScript, такие как <EvalError>, <SyntaxError>, <RangeError>, <ReferenceError>, <TypeError> и <URIError>.
- Системные ошибки, вызванные ограничениями базовой операционной системы, такие как попытка открыть несуществующий файл или попытка отправить данные по закрытому сокету.
- Ошибки, заданные пользователем, вызванные кодом приложения.
-
AssertionErrorпредставляют собой особый класс ошибок, которые могут возникать, когда Node.js обнаруживает исключительное нарушение логики, которое никогда не должно происходить. Они обычно поднимаются модулемassert.
Все ошибки JavaScript и системные ошибки, поднятые Node.js, наследуют от или являются экземплярами стандартного класса JavaScript <Error> и гарантированно предоставляют по крайней мере свойства, доступные в этом классе.
Распространение и перехват ошибок
Node.js поддерживает несколько механизмов для распространения и обработки ошибок, возникающих во время работы приложения. Способ, которым эти ошибки сообщаются и обрабатываются, полностью зависит от типа Error и стиля вызываемого API.
Все ошибки JavaScript обрабатываются как исключения, которые немедленно генерируют и выбрасывают ошибку с использованием стандартного механизма JavaScript throw. Они обрабатываются с помощью конструкции try…catch, предоставляемой языком JavaScript.
// 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 будет вызывать исключение, которое обязательно должно быть обработано с помощью try…catch, иначе процесс Node.js завершится немедленно.
За исключением немногих случаев, синхронные API (любой блокирующий метод, который не принимает функцию callback, например fs.readFileSync) будут использовать throw для сообщения об ошибках.
Ошибки, возникающие в асинхронных API, могут быть сообщены несколькими способами:
-
Большинство асинхронных методов, которые принимают функцию
callback, будут принимать объектError, переданный в качестве первого аргумента этой функции. Если этот первый аргумент неnullи является экземпляромError, значит произошла ошибка, которую необходимо обработать.const fs = require('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('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); -
Несколько обычно асинхронных методов API Node.js могут по-прежнему использовать механизм
throwдля поднятия исключений, которые необходимо обработать с помощьюtry…catch. Нет исчерпывающего списка таких методов; пожалуйста, обратитесь к документации каждого метода, чтобы определить необходимый механизм обработки ошибок.
Использование механизма события 'error' наиболее распространено для потоковых и событийных API, которые сами представляют собой серию асинхронных операций со временем (в отличие от одной операции, которая может пройти или потерпеть неудачу).
Для всех EventEmitter объектов, если обработчик события 'error' не предоставлен, ошибка будет выброшена, вызвав сообщение о непредвиденном исключении в процессе Node.js и сбой, если не используется модуль domain соответствующим образом или не зарегистрирован обработчик для события 'uncaughtException'.
const EventEmitter = require('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, так как они выбрасываются после того, как вызывающий код уже завершил работу.
Разработчики должны обратиться к документации каждого метода, чтобы точно определить, как распространяются ошибки, поднятые этими методами.
Обработчики ошибок с callback-функциями
Большинство асинхронных методов, представленных в ядре Node.js, следуют образцовому шаблону, называемому callback-функцией с ошибкой в первую очередь. В соответствии с этим шаблоном функция обратного вызова передается методу в качестве аргумента. При завершении операции или возникновении ошибки функция обратного вызова вызывается с объектом Error (если он есть) в качестве первого аргумента. Если ошибка не возникла, первый аргумент будет передан как null.
const fs = require('fs');
function errorFirstCallback(err, data) {
if (err) {
console.error('There was an error', err);
return;
}
console.log(data);
}
fs.readFile('/some/file/that/does-not-exist', errorFirstCallback);
fs.readFile('/some/file/that/does-exist', errorFirstCallback); Механизм JavaScript try…catch нельзя использовать для перехвата ошибок, генерируемых асинхронными API. Распространенная ошибка для начинающих — попытка использовать throw внутри callback-функции с ошибкой в первую очередь:
// THIS WILL NOT WORK:
const fs = require('fs');
try {
fs.readFile('/some/file/that/does-not-exist', (err, data) => {
// Mistaken assumption: throwing here...
if (err) {
throw err;
}
});
} catch (err) {
// This will not catch the throw!
console.error(err);
} Это не сработает, потому что функция обратного вызова, переданная fs.readFile(), вызывается асинхронно. К моменту вызова callback-функции окружающий код, включая блок try…catch, уже завершит работу. Выбрасывание ошибки внутри callback-функции в большинстве случаев может привести к сбою процесса Node.js. Если включены области доменов или зарегистрирован обработчик с process.on('uncaughtException'), такие ошибки можно перехватить.
Класс: Error
Объект JavaScript <Error>, обозначающий общую ошибку без указания конкретной причины. Error объекты содержат «стек вызовов», описывающий точку в коде, в которой был создан Error, а также возможно текстовое описание ошибки.
Все ошибки, генерируемые Node.js, включая системные и JavaScript ошибки, являются экземплярами или наследуются от класса Error.
new Error(message)
-
message<строка>
Создаёт новый объект Error и устанавливает свойство error.message в переданное текстовое сообщение. Если в качестве message передаётся объект, текстовое сообщение генерируется путём вызова message.toString(). Свойство error.stack будет представлять точку в коде, в которой был вызван new Error(). Стек вызовов зависит от API стека вызовов V8. Стек вызовов охватывает либо (а) начало синхронной работы кода, либо (б) количество кадров, заданных свойством Error.stackTraceLimit, в зависимости от того, что меньше.
Error.captureStackTrace(targetObject[, constructorOpt])
Создаёт свойство .stack для targetObject, которое при обращении возвращает строку, представляющую расположение в коде, где был вызван Error.captureStackTrace().
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack` Первая строка трассировки будет иметь префикс ${myObject.name}: ${myObject.message}.
Необязательный аргумент constructorOpt принимает функцию. Если он задан, все кадры выше constructorOpt, включая constructorOpt, будут исключены из сгенерированного стека вызовов.
Аргумент constructorOpt полезен для скрытия от пользователя деталей реализации генерации ошибок. Например:
function MyError() {
Error.captureStackTrace(this, MyError);
}
// Without passing MyError to captureStackTrace, the MyError
// frame would show up in the .stack property. By passing
// the constructor, we omit that frame, and retain all frames below it.
new MyError().stack;
Error.stackTraceLimit
Свойство Error.stackTraceLimit задаёт количество кадров стека вызовов, собираемых трассировкой (будь то, сгенерированная new Error().stack или Error.captureStackTrace(obj)).
Значение по умолчанию равно 10, но может быть установлено на любое допустимое число JavaScript. Изменения повлияют на все трассировки стека, полученные после изменения значения.
Если значение установлено не как число, или установлено отрицательным числом, трассировка стека не будет собирать никаких кадров.
error.code
Свойство error.code — строковое обозначение типа ошибки. error.code — наиболее стабильный способ идентификации ошибки. Оно будет меняться только между основными версиями Node.js. В отличие от error.message строк, которые могут меняться между любыми версиями Node.js. См. коды ошибок Node.js для получения подробной информации о конкретных кодах.
error.message
Свойство error.message — строковое описание ошибки, заданное вызовом new Error(message). Переданное в конструктор message также отобразится в первой строке стека вызовов Error, однако изменение этого свойства после создания объекта Error может не изменить первую строку стека вызовов (например, когда error.stack читается до изменения этого свойства).
const err = new Error('The message');
console.error(err.message);
// 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 функций. Например, если выполнение синхронно проходит через функцию C++ плагина cheetahify, которая сама вызывает 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, если кадр представляет вызов в пользовательской программе или её зависимостях.
Строка, представляющая стек вызовов, генерируется лениво, когда обращается к свойству error.stack.
Количество кадров, захватываемых стеком вызовов, ограничено меньшим значением из Error.stackTraceLimit или количества доступных кадров в текущем цикле событий.
Класс: AssertionError
- Расширяет: <errors.Error>
Указывает на ошибку утверждения. Для подробностей см. Class: assert.AssertionError.
Класс: RangeError
- Расширяет: <errors.Error>
Указывает, что предоставленный аргумент не находился в наборе или диапазоне допустимых значений для функции; будь то числовой диапазон или за пределами набора опций для данного параметра функции.
require('net').connect(-1);
// Throws "RangeError: "port" option should be >= 0 and < 65536: -1" Node.js сгенерирует и выбросит экземпляры RangeError немедленно в качестве формы проверки аргументов.
Класс: ReferenceError
- Расширяет: <errors.Error>
Указывает на попытку доступа к переменной, которая не определена. Такие ошибки обычно указывают на опечатки в коде или иную поломку программы.
Хотя клиентский код может генерировать и распространять эти ошибки, на практике это делает только V8.
doesNotExist; // Throws ReferenceError, doesNotExist is not a variable in this program.
Если приложение не генерирует и не выполняет код динамически, экземпляры ReferenceError указывают на ошибку в коде или его зависимостях.
Класс: SyntaxError
- Расширяет: <errors.Error>
Указывает, что программа не является допустимым JavaScript кодом. Эти ошибки могут генерироваться и распространяться только в результате оценки кода. Оценка кода может происходить в результате eval, Function, require, или vm. Эти ошибки почти всегда указывают на поломку программы.
try {
require('vm').runInThisContext('binary ! isNotOk');
} catch (err) {
// 'err' will be a SyntaxError.
} Экземпляры SyntaxError необратимы в контексте, в котором они были созданы — их могут перехватить только другие контексты.
Класс: SystemError
- Расширяет: <errors.Error>
Node.js генерирует системные ошибки при возникновении исключений в своей среде выполнения. Обычно это происходит, когда приложение нарушает ограничение операционной системы. Например, системная ошибка возникнет, если приложение попытается прочитать файл, которого не существует.
-
address<string> Если присутствует, адрес, по которому не удалось установить сетевое соединение -
code<string> Строковый код ошибки -
dest<string> Если присутствует, путь к файлу назначения при сообщении об ошибке файловой системы -
errno<number> Номер ошибки, предоставленный системой -
info<Object> Если присутствует, дополнительные сведения об ошибке -
message<string> Читабельное описание ошибки, предоставленное системой -
path<string> Если присутствует, путь к файлу при сообщении об ошибке файловой системы -
port<number> Если присутствует, порт сетевого соединения, который недоступен -
syscall<string> Имя системного вызова, вызвавшего ошибку
error.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) man page.
-
EACCES(Доступ запрещён): Попытка доступа к файлу, запрещённая его правами доступа. -
EADDRINUSE(Адрес уже используется): Попытка привязать сервер (net,httpилиhttps) к локальному адресу завершилась неудачей из-за другого сервера в локальной системе, уже использующего этот адрес. -
ECONNREFUSED(Подключение отклонено): Не удалось установить соединение, поскольку целевая машина активно его отклонила. Обычно это результат попытки подключения к сервису, который неактивен на удалённом узле. -
ECONNRESET(Подключение прервано удалённой стороной): Подключение было принудительно закрыто удалённой стороной. Обычно это связано с потерей соединения на удалённом сокете из-за таймаута или перезагрузки. Часто встречается в модуляхhttpиnet. -
EEXIST(Файл существует): Существующий файл был целью операции, которая требовала, чтобы цель не существовала. -
EISDIR(Это директория): Операция ожидала файл, но указанный путь был директорией. -
EMFILE(Максимальное количество открытых файлов в системе достигнуто): Достигнуто максимальное количество разрешённых дескрипторов файлов в системе, и запросы на другой дескриптор не могут быть удовлетворены, пока не будет закрыт хотя бы один. Это встречается при одновременном открытии многих файлов, особенно на системах (в частности, macOS), где для процессов низкий лимит дескрипторов файлов. Для исправления низкого лимита запуститеulimit -n 2048в той же оболочке, где будет выполняться процесс Node.js. -
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
- Расширяет <errors.Error>
Указывает, что предоставленный аргумент не является допустимым типом. Например, передача функции в параметр, ожидающий строку, будет TypeError.
require('url').parse(() => { });
// Throws TypeError, since it expected a string. Node.js будет генерировать и выбрасывать экземпляры TypeError немедленно в качестве средства проверки аргументов.
Исключения и ошибки
JavaScript-исключение — это значение, которое выбрасывается в результате недопустимой операции или как цель оператора throw. Хотя не требуется, чтобы эти значения были экземплярами Error или классов, которые наследуются от Error, все исключения, выбрасываемые Node.js или средой выполнения JavaScript, будут экземплярами Error.
Некоторые исключения невозможно исправить на уровне JavaScript. Такие исключения всегда приведут к аварийному завершению процесса Node.js. Примеры включают assert() проверки или abort() вызовы в слое C++.
Ошибки OpenSSL
Ошибки, возникшие в crypto или tls, относятся к классу Error, и помимо стандартных свойств .code и .message, могут иметь некоторые дополнительные свойства, специфичные для OpenSSL.
error.opensslErrorStack
Массив ошибок, который может предоставить контекст, откуда в библиотеке OpenSSL произошла ошибка.
error.function
Функция OpenSSL, в которой произошла ошибка.
error.library
Библиотека OpenSSL, в которой произошла ошибка.
error.reason
Строка, читабельная человеком, описывающая причину ошибки.
Коды ошибок Node.js
ABORT_ERR
Используется, когда операция была прервана (обычно с помощью AbortController).
API, не использующие AbortSignals, как правило, не генерируют ошибку с этим кодом.
Этот код не использует обычную ERR_* конвенцию ошибок Node.js, чтобы быть совместимым с AbortError веб-платформы.
ERR_AMBIGUOUS_ARGUMENT
Аргумент функции используется таким образом, что предполагает возможность неправильного понимания сигнатуры функции. Эта ошибка выбрасывается модулем assert , когда параметр message в assert.throws(block, message) совпадает с сообщением об ошибке, выброшенным block, поскольку такое использование предполагает, что пользователь считает, что message является ожидаемым сообщением, а не сообщением, которое отобразит AssertionError, если block не сгенерирует ошибку.
ERR_ARG_NOT_ITERABLE
Требовался итерабельный аргумент (то есть значение, работающее с циклами for...of), но он не был предоставлен API Node.js.
ERR_ASSERTION
Особый тип ошибки, который может быть вызван, когда Node.js обнаруживает исключительную логическую ошибку, которая никогда не должна происходить. Обычно такие ошибки генерирует модуль assert.
ERR_ASYNC_CALLBACK
Была предпринята попытка зарегистрировать что-то, что не является функцией, как AsyncHooks обратный вызов.
ERR_ASYNC_TYPE
Тип асинхронного ресурса был недопустимым. Пользователи также могут определять свои собственные типы, если используют публичный API встраивания.
ERR_BROTLI_COMPRESSION_FAILED
Данные, переданные потоку Brotli, не были успешно сжаты.
ERR_BROTLI_INVALID_PARAM
При создании потока Brotli был передан неверный параметр.
ERR_BUFFER_CONTEXT_NOT_AVAILABLE
Была предпринята попытка создать экземпляр Buffer Node.js из кода плагина или кода встраивания, находясь в контексте JS-движка, не связанном с экземпляром Node.js. Данные, переданные методу Buffer, будут освобождены к моменту возврата метода.
При возникновении этой ошибки возможной альтернативой созданию экземпляра Buffer является создание обычного Uint8Array, который отличается только прототипом результирующего объекта. Uint8Array обычно принимаются во всех ядрах API Node.js, где принимаются 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 контекст vm еще не инициализирован. Это может произойти, когда во время создания контекста возникает ошибка (и она перехватывается), например, при неудачном выделении памяти или достижении максимального размера стека вызовов при создании контекста.
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED
Был запрошен движок сертификатов клиента, который не поддерживается используемой версией OpenSSL.
ERR_CRYPTO_ECDH_INVALID_FORMAT
Было передано недопустимое значение для аргумента format методу crypto.ECDH() класса getPublicKey().
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY
Было передано недопустимое значение для аргумента key методу crypto.ECDH() класса computeSecret(). Это означает, что открытый ключ находится вне эллиптической кривой.
ERR_CRYPTO_ENGINE_UNKNOWN
Был передан недопустимый идентификатор движка криптографии в require('crypto').setEngine().
ERR_CRYPTO_FIPS_FORCED
Использовался аргумент командной строки --force-fips, но была попытка включить или выключить режим FIPS в модуле crypto.
ERR_CRYPTO_FIPS_UNAVAILABLE
Была попытка включить или выключить режим FIPS, но режим FIPS был недоступен.
ERR_CRYPTO_HASH_FINALIZED
Метод hash.digest() был вызван несколько раз. Метод hash.digest() должен вызываться не более одного раза на экземпляр объекта Hash.
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.getAuthTag() до вызова cipher.final().
ERR_CRYPTO_INVALID_TAG_LENGTH
Была предоставлена недопустимая длина тега аутентификации.
ERR_CRYPTO_JOB_INIT_FAILED
Инициализация асинхронной криптографической операции не удалась.
ERR_CRYPTO_JWK_UNSUPPORTED_CURVE
Эллиптическая кривая ключа не зарегистрирована для использования в реестре эллиптических кривых JSON Web Key.
ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE
Тип асимметричного ключа ключа не зарегистрирован для использования в реестре типов JSON Web Key.
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
Подпись key не была предоставлена методу 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
Возникла ошибка с отладчиком debugger.
ERR_DEBUGGER_STARTUP_ERROR
Отладчик debugger превысил время ожидания, ожидая освобождения требуемого хоста/порта.
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
Модуль domain был недоступен, так как не смог установить необходимые обработчики ошибок, потому что process.setUncaughtExceptionCaptureCallback() был вызван ранее.
ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE
process.setUncaughtExceptionCaptureCallback() не удалось вызвать, потому что модуль domain был загружен ранее.
Трассировка стека расширена, чтобы включать момент загрузки модуля domain.
ERR_ENCODING_INVALID_ENCODED_DATA
Данные, предоставленные API TextDecoder(), были некорректными в соответствии с указанным кодированием.
ERR_ENCODING_NOT_SUPPORTED
Кодирование, предоставленное API TextDecoder(), не было одним из поддерживаемых 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
Promise , который был обработано с помощью util.callbackify(), был отклонен с ложным значением.
ERR_FEATURE_UNAVAILABLE_ON_PLATFORM
Используется, когда используется функция, недоступная для текущей платформы, на которой выполняется Node.js.
ERR_FS_CP_DIR_TO_NON_DIR
Была предпринята попытка копирования каталога в некаталог (файл, символическая ссылка и т. д.) с помощью fs.cp().
ERR_FS_CP_EEXIST
Была предпринята попытка копирования файла, который уже существовал, с помощью fs.cp() с force и errorOnExist , установленным на true.
ERR_FS_CP_EINVAL
При использовании fs.cp(), src или dest указывали на недопустимый путь.
ERR_FS_CP_FIFO_PIPE
Была предпринята попытка копирования именованной трубы с помощью fs.cp().
ERR_FS_CP_NON_DIR_TO_DIR
Была предпринята попытка копирования некаталога (файла, символической ссылки и т. д.) в каталог с помощью fs.cp().
ERR_FS_CP_SOCKET
Была предпринята попытка копирования в сокет с помощью fs.cp().
ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY
При использовании fs.cp(), символическая ссылка в dest указывала на подкаталог src.
ERR_FS_CP_UNKNOWN
Была предпринята попытка копирования в неизвестный тип файла с помощью fs.cp().
ERR_FS_EISDIR
Путь является каталогом.
ERR_FS_FILE_TOO_LARGE
Была предпринята попытка чтения файла, размер которого превышает максимальный разрешенный размер для Buffer.
ERR_FS_INVALID_SYMLINK_TYPE
Некорректный тип символической ссылки был передан методам fs.symlink() или fs.symlinkSync().
ERR_HTTP_HEADERS_SENT
Была предпринята попытка добавить дополнительные заголовки после отправки заголовков.
ERR_HTTP_INVALID_HEADER_VALUE
Было указано недопустимое значение HTTP-заголовка.
ERR_HTTP_INVALID_STATUS_CODE
Код состояния был вне диапазона обычных кодов состояния (100-999).
ERR_HTTP_REQUEST_TIMEOUT
Клиент не отправил весь запрос в течение разрешенного времени.
ERR_HTTP_SOCKET_ENCODING
Изменение кодировки сокета запрещено в соответствии с RFC 7230 Раздел 3.
ERR_HTTP_TRAILER_INVALID
Заголовок Trailer был задан, хотя кодирование передачи этого не поддерживает.
ERR_HTTP2_ALTSVC_INVALID_ORIGIN
HTTP/2 кадры ALTSVC требуют корректного источника.
ERR_HTTP2_ALTSVC_LENGTH
HTTP/2 кадры ALTSVC ограничены максимальным объёмом полезной нагрузки в 16 382 байта.
ERR_HTTP2_CONNECT_AUTHORITY
Для HTTP/2 запросов с использованием метода CONNECT, необходим псевдозаголовок :authority.
ERR_HTTP2_CONNECT_PATH
Для HTTP/2 запросов с использованием метода CONNECT, псевдозаголовок :path запрещён.
ERR_HTTP2_CONNECT_SCHEME
Для HTTP/2 запросов с использованием метода CONNECT, псевдозаголовок :scheme запрещён.
ERR_HTTP2_ERROR
Произошла неспецифическая ошибка HTTP/2.
ERR_HTTP2_GOAWAY_SESSION
Новые потоки HTTP/2 не могут быть открыты после того, как Http2Session получит кадр GOAWAY от подключённого узла.
ERR_HTTP2_HEADER_SINGLE_VALUE
Были предоставлены несколько значений для поля заголовка HTTP/2, которое должно иметь только одно значение.
ERR_HTTP2_HEADERS_AFTER_RESPOND
Были указаны дополнительные заголовки после инициирования ответа HTTP/2.
ERR_HTTP2_HEADERS_SENT
Была предпринята попытка отправить несколько заголовков ответа.
ERR_HTTP2_INFO_STATUS_NOT_ALLOWED
Информационные HTTP коды состояния (1xx) не могут быть установлены в качестве кода состояния ответа в HTTP/2 ответах.
ERR_HTTP2_INVALID_CONNECTION_HEADERS
Заголовки HTTP/1, специфичные для подключения, запрещены для использования в запросах и ответах HTTP/2.
ERR_HTTP2_INVALID_HEADER_VALUE
Было указано некорректное значение заголовка HTTP/2.
ERR_HTTP2_INVALID_INFO_STATUS
Было указано некорректное информационное состояние HTTP. Информационные коды состояния должны быть целым числом между 100 и 199 (включительно).
ERR_HTTP2_INVALID_ORIGIN
HTTP/2 кадры ORIGIN требуют корректного источника.
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH
Входные экземпляры Buffer и Uint8Array , переданные API http2.getUnpackedSettings(), должны иметь длину, кратную шести.
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
Была предпринята попытка инициировать новый поток push изнутри потока push. Вложенные потоки push не допускаются.
ERR_HTTP2_NO_MEM
Недостаточно памяти при использовании API http2session.setLocalWindowSize(windowSize).
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-ответа, для которого запрещен payload, был указан payload сообщения.
ERR_HTTP2_PING_CANCEL
HTTP/2 ping был отменен.
ERR_HTTP2_PING_LENGTH
Payload HTTP/2 ping должен быть ровно 8 байт в длину.
ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED
Заголовок HTTP/2 pseudo-заголовок был использован неправильно. Pseudo-заголовки — это имена ключей заголовков, которые начинаются с префикса :.
ERR_HTTP2_PUSH_DISABLED
Была предпринята попытка создать поток push, который был отключен клиентом.
ERR_HTTP2_SEND_FILE
Была предпринята попытка использовать API Http2Stream.prototype.responseWithFile() для отправки каталога.
ERR_HTTP2_SEND_FILE_NOSEEK
Была предпринята попытка использовать API Http2Stream.prototype.responseWithFile() для отправки чего-либо, кроме обычного файла, но были предоставлены опции offset или length.
ERR_HTTP2_SESSION_ERROR
Сессия Http2Session была закрыта с ошибкой, отличной от нуля.
ERR_HTTP2_SETTINGS_CANCEL
Настройки Http2Session были отменены.
ERR_HTTP2_SOCKET_BOUND
Была предпринята попытка подключить объект Http2Session к сокету net.Socket или tls.TLSSocket, который уже был привязан к другому объекту Http2Session.
ERR_HTTP2_SOCKET_UNBOUND
Была предпринята попытка использовать свойство socket объекта Http2Session, который уже был закрыт.
ERR_HTTP2_STATUS_101
Использование информационного кода состояния 101 запрещено в HTTP/2.
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.sendTrailers() нельзя вызвать до тех пор, пока не будет отправлено событие 'wantTrailers' для объекта Http2Stream . Событие 'wantTrailers' будет отправлено только в том случае, если опция waitForTrailers установлена для Http2Stream.
ERR_HTTP2_UNSUPPORTED_PROTOCOL
http2.connect() получил URL, использующий протокол, отличный от http: или https:.
ERR_ILLEGAL_CONSTRUCTOR
Была предпринята попытка создать объект с использованием закрытого конструктора.
ERR_INCOMPATIBLE_OPTION_PAIR
Пара опций несовместима и не может использоваться одновременно.
ERR_INPUT_TYPE_NOT_ALLOWED
Флаг --input-type был использован для попытки выполнения файла. Этот флаг может использоваться только с вводом через --eval, --print или STDIN.
ERR_INSPECTOR_ALREADY_ACTIVATED
При использовании модуля inspector была предпринята попытка активировать инспектор, когда он уже начал прослушивать порт. Используйте inspector.close() перед его активацией на другом адресе.
ERR_INSPECTOR_ALREADY_CONNECTED
При использовании модуля inspector была предпринята попытка подключения, когда инспектор уже был подключен.
ERR_INSPECTOR_CLOSED
При использовании модуля inspector была предпринята попытка использовать инспектор после закрытия сессии.
ERR_INSPECTOR_COMMAND
Возникла ошибка при выполнении команды через модуль inspector.
ERR_INSPECTOR_NOT_ACTIVE
Инспектор inspector не активен при вызове inspector.waitForDebugger().
ERR_INSPECTOR_NOT_AVAILABLE
Модуль inspector недоступен для использования.
ERR_INSPECTOR_NOT_CONNECTED
При использовании модуля inspector была предпринята попытка использовать инспектор до его подключения.
ERR_INSPECTOR_NOT_WORKER
В основном потоке был вызван API, который может использоваться только в потоке-воркере.
ERR_INTERNAL_ASSERTION
В Node.js была ошибка или некорректное использование внутренних компонентов Node.js. Для исправления ошибки откройте вопрос на https://github.com/nodejs/node/issues.
ERR_INVALID_ADDRESS_FAMILY
Предоставленная семейство адресов не распознается API Node.js.
ERR_INVALID_ARG_TYPE
В API Node.js был передан аргумент неверного типа.
ERR_INVALID_ARG_VALUE
В качестве аргумента было передано недопустимое или неподдерживаемое значение.
ERR_INVALID_ASYNC_ID
Использовано недопустимое asyncId или triggerAsyncId с помощью AsyncHooks . Значение id меньше -1 недопустимо.
ERR_INVALID_BUFFER_SIZE
Была выполнена перестановка на Buffer, но её размер несовместим с операцией.
ERR_INVALID_CALLBACK
Функция обратного вызова была необходима, но не была предоставлена API Node.js.
ERR_INVALID_CHAR
В заголовках были обнаружены недопустимые символы.
ERR_INVALID_CURSOR_POS
Курсор в заданном потоке не может быть перемещен в указанную строку без указанного столбца.
ERR_INVALID_FD
Дескриптор файла ('fd') недействителен (например, он имеет отрицательное значение).
ERR_INVALID_FD_TYPE
Тип дескриптора файла ('fd') недействителен.
ERR_INVALID_FILE_URL_HOST
API Node.js, обрабатывающий file: URL (например, некоторые функции в модуле fs) столкнулись с файловым URL с несовместимым хостом. Эта ситуация может возникнуть только в системах Unix-подобных, где поддерживается только localhost или пустой хост.
ERR_INVALID_FILE_URL_PATH
API Node.js, обрабатывающий file: URL (например, некоторые функции в модуле fs) столкнулись с файловым URL с несовместимым путём. Точные правила определения возможности использования пути зависят от платформы.
ERR_INVALID_HANDLE_TYPE
Была предпринята попытка отправить недопустимый "handle" по каналу IPC в дочерний процесс. Подробнее см. subprocess.send() и process.send().
ERR_INVALID_HTTP_TOKEN
Предоставлен недопустимый HTTP-токен.
ERR_INVALID_IP_ADDRESS
IP-адрес недействителен.
ERR_INVALID_MODULE
Была предпринята попытка загрузить несуществующий или недействительный модуль.
ERR_INVALID_MODULE_SPECIFIER
Строка импортируемого модуля — это недопустимый URL, имя пакета или указатель на подпуть пакета.
ERR_INVALID_PACKAGE_CONFIG
Некорректный файл package.json не смог пройти разбор.
ERR_INVALID_PACKAGE_TARGET
Поле package.json "exports" содержит недопустимое значение для целевого отображения для попытки разрешения модуля.
ERR_INVALID_PERFORMANCE_MARK
При использовании API отслеживания производительности (perf_hooks) отметка производительности недействительна.
ERR_INVALID_PROTOCOL
Недопустимый options.protocol был передан в http.request().
ERR_INVALID_REPL_EVAL_CONFIG
И опция breakEvalOnSigint, и опция eval были установлены в конфигурации REPL, что не поддерживается.
ERR_INVALID_REPL_INPUT
Ввод не может быть использован в REPL. Условия, при которых возникает эта ошибка, описаны в документации REPL.
ERR_INVALID_RETURN_PROPERTY
Выбрасывается в случае, если функция-опция не предоставляет допустимое значение для одного из свойств возвращаемого объекта во время выполнения.
ERR_INVALID_RETURN_PROPERTY_VALUE
Выбрасывается в случае, если функция-опция не предоставляет ожидаемый тип значения для одного из свойств возвращаемого объекта во время выполнения.
ERR_INVALID_RETURN_VALUE
Выбрасывается в случае, если функция-опция не возвращает ожидаемый тип значения во время выполнения, например, когда функция должна вернуть промис.
ERR_INVALID_STATE
Указывает, что операция не может быть завершена из-за недопустимого состояния. Например, объект уже может быть уничтожен или выполнять другую операцию.
ERR_INVALID_SYNC_FORK_INPUT
В качестве входных данных для асинхронного форка был передан Buffer, TypedArray, DataView или string. Подробнее см. документацию модуля child_process.
ERR_INVALID_THIS
Функция API Node.js была вызвана с недопустимым значением 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_TRANSFER_OBJECT
Был передан недопустимый объект переноса в postMessage().
ERR_INVALID_TUPLE
Элемент в iterable, переданный конструктору WHATWG URLSearchParams, не представлял собой кортеж [name, value], то есть элемент не был итерируемым или не состоял ровно из двух элементов.
ERR_INVALID_URI
Был передан недопустимый URI.
ERR_INVALID_URL
Некорректный URL был передан конструктору WHATWG URL для анализа. Объект ошибки, как правило, имеет дополнительное свойство 'input', содержащее URL, который не удалось проанализировать.
ERR_INVALID_URL_SCHEME
Была предпринята попытка использовать URL с несовместимой схемой (протоколом) для определенной цели. Используется только в поддержке WHATWG URL API в модуле fs (который принимает только URL со схемой 'file'), но в будущем может использоваться и в других API Node.js.
ERR_IPC_CHANNEL_CLOSED
Была предпринята попытка использовать закрытый канал IPC.
ERR_IPC_DISCONNECTED
Была предпринята попытка отключить уже отключенный канал IPC. Подробнее см. документацию модуля child_process.
ERR_IPC_ONE_PIPE
Была предпринята попытка создать дочерний процесс Node.js с использованием более одного канала IPC. Подробнее см. документацию модуля child_process.
ERR_IPC_SYNC_FORK
Была предпринята попытка открыть канал IPC с синхронно разветвлённым процессом Node.js. Подробнее см. документацию модуля child_process.
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, не удалось выполнить десериализацию в целевом vm Context. В данный момент не все объекты Node.js могут быть успешно созданы в любом контексте, и попытка их передачи с помощью postMessage() может завершиться ошибкой на стороне получателя в этом случае.
ERR_METHOD_NOT_IMPLEMENTED
Требуется метод, но он не реализован.
ERR_MISSING_ARGS
Не был передан необходимый аргумент API Node.js. Используется только для строгого соответствия спецификации API (которая в некоторых случаях может принимать func(undefined), но не func()). В большинстве нативных API Node.js func(undefined) и func() обрабатываются одинаково, и вместо этого может быть использовано кодовое значение ошибки ERR_INVALID_ARG_TYPE.
ERR_MISSING_OPTION
Для API, принимающих объекты параметров, некоторые параметры могут быть обязательными. Данный код выбрасывается, если отсутствует необходимый параметр.
ERR_MISSING_PASSPHRASE
Была предпринята попытка прочитать зашифрованный ключ без указания парольной фразы.
ERR_MISSING_PLATFORM_FOR_WORKER
Платформа V8, используемая этой инстанцией Node.js, не поддерживает создание рабочих потоков. Это вызвано отсутствием поддержки встраивания для рабочих потоков. В частности, эта ошибка не будет возникать при стандартных сборках Node.js.
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
Объект, который необходимо явно указать в аргументе transferList, находится в объекте, переданном в вызов postMessage(), но не указан в transferList для этого вызова. Обычно это MessagePort.
В версиях Node.js до v15.0.0 используемое здесь кодовое значение ошибки было ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST. Однако набор типов переноса объектов расширен, чтобы охватить больше типов, чем MessagePort.
ERR_MODULE_NOT_FOUND
Не удалось разрешить ES-модуль.
ERR_MULTIPLE_CALLBACK
Обработчик вызывался более одного раза.
Обработчик, практически всегда, должен вызываться только один раз, так как запрос может быть либо выполнен, либо отклонен, но не оба сразу. Последнее было бы возможно, вызвав обработчик более одного раза.
ERR_NAPI_CONS_FUNCTION
При использовании Node-API, переданный конструктор не был функцией.
ERR_NAPI_INVALID_DATAVIEW_ARGS
Во время вызова napi_create_dataview(), заданный offset выходил за пределы dataview или 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_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_PERFORMANCE_INVALID_TIMESTAMP
Было предоставлено недопустимое значение отметки времени для метки или измерения производительности.
ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS
Были предоставлены недопустимые параметры для измерения производительности.
ERR_PROTO_ACCESS
Доступ к Object.prototype.__proto__ был запрещён с помощью --disable-proto=throw. Для получения и установки прототипа объекта необходимо использовать Object.getPrototypeOf и Object.setPrototypeOf.
ERR_REQUIRE_ESM
Была предпринята попытка require() модуля ES.
ERR_SCRIPT_EXECUTION_INTERRUPTED
Выполнение скрипта было прервано SIGINT (например, была нажата комбинация клавиш Ctrl+C).
ERR_SCRIPT_EXECUTION_TIMEOUT
Выполнение скрипта истекло, возможно, из-за ошибок в выполняемом скрипте.
ERR_SERVER_ALREADY_LISTEN
Метод server.listen() был вызван, в то время как сервер net.Server уже прослушивал подключения. Это относится ко всем экземплярам net.Server, включая HTTP, HTTPS и HTTP/2 Server экземпляры.
ERR_SERVER_NOT_RUNNING
Метод server.close() был вызван, когда сервер net.Server не работал. Это относится ко всем экземплярам net.Server, включая HTTP, HTTPS и HTTP/2 Server экземпляры.
ERR_SOCKET_ALREADY_BOUND
Была предпринята попытка привязать сокет, который уже был привязан.
ERR_SOCKET_BAD_BUFFER_SIZE
Некорректный (отрицательный) размер был передан для параметров recvBufferSize или sendBufferSize в dgram.createSocket().
ERR_SOCKET_BAD_PORT
Функция API, ожидающая порт >= 0 и < 65536, получила недопустимое значение.
ERR_SOCKET_BAD_TYPE
Функция API, ожидающая тип сокета (udp4 или udp6), получила недопустимое значение.
ERR_SOCKET_BUFFER_SIZE
При использовании dgram.createSocket(), размер буфера приёма или отправки Buffer определить не удалось.
ERR_SOCKET_CLOSED
Была предпринята попытка выполнить операцию на уже закрытом сокете.
ERR_SOCKET_DGRAM_IS_CONNECTED
Вызов dgram.connect() был сделан для уже подключённого сокета.
ERR_SOCKET_DGRAM_NOT_CONNECTED
Вызов dgram.disconnect() или dgram.remoteAddress() был сделан для отключённого сокета.
ERR_SOCKET_DGRAM_NOT_RUNNING
Был сделан вызов, и подсистема UDP не работала.
ERR_SRI_PARSE
Строка была предоставлена для проверки целостности подресурсов, но не смогла быть обработана. Проверьте формат атрибутов целостности, обратившись к спецификации Subresource Integrity.
ERR_STREAM_ALREADY_FINISHED
Был вызван метод потока, который не может быть завершён, потому что поток завершён.
ERR_STREAM_CANNOT_PIPE
Была предпринята попытка вызвать stream.pipe() для потока Writable.
ERR_STREAM_DESTROYED
Был вызван метод потока, который не может быть завершен, потому что поток был уничтожен с помощью stream.destroy().
ERR_STREAM_NULL_VALUES
Была предпринята попытка вызвать stream.write() с фрагментом null.
ERR_STREAM_PREMATURE_CLOSE
Возвращаемая ошибка stream.finished() и stream.pipeline(), когда поток или цепочка завершаются некорректно без явного указания ошибки.
ERR_STREAM_PUSH_AFTER_EOF
Была предпринята попытка вызвать stream.push() после того, как в поток был отправлен null(EOF).
ERR_STREAM_UNSHIFT_AFTER_END_EVENT
Была предпринята попытка вызвать stream.unshift() после того, как был выпущен событие 'end'.
ERR_STREAM_WRAP
Предотвращает прерывание, если декодер строк был задан для сокета или если декодер находится в objectMode.
const Socket = require('net').Socket;
const instance = new Socket();
instance.setEncoding('utf8');
ERR_STREAM_WRITE_AFTER_END
Была предпринята попытка вызвать stream.write() после вызова stream.end().
ERR_STRING_TOO_LONG
Была предпринята попытка создать строку длиннее максимальной разрешённой длины.
ERR_SYNTHETIC
Искусственный объект ошибки, используемый для захвата стека вызовов для отчетов об ошибках.
ERR_SYSTEM_ERROR
Произошла неопределённая или неспецифичная системная ошибка в процессе Node.js. Объект ошибки будет иметь свойство err.info с дополнительными подробностями.
ERR_TLS_CERT_ALTNAME_FORMAT
Эта ошибка выбрасывается checkServerIdentity если свойство subjectaltname пользователя нарушает правила кодирования. Объекты сертификатов, созданные самим Node.js, всегда соответствуют правилам кодирования и никогда не вызовут эту ошибку.
ERR_TLS_CERT_ALTNAME_INVALID
При использовании TLS имя хоста/IP-адрес собеседника не совпадал ни с одним из subjectAltNames в его сертификате.
ERR_TLS_DH_PARAM_SIZE
При использовании TLS предоставленные параметры для протокола обмена ключами Diffie-Hellman (DH) слишком малы. По умолчанию длина ключа должна быть не менее 1024 бит, чтобы избежать уязвимостей, хотя настоятельно рекомендуется использовать 2048 бит или больше для большей безопасности.
ERR_TLS_HANDSHAKE_TIMEOUT
Истекло время ожидания рукопожатия TLS/SSL. В этом случае сервер также должен прервать соединение.
ERR_TLS_INVALID_CONTEXT
Контекст должен быть SecureContext.
ERR_TLS_INVALID_PROTOCOL_METHOD
Указанный secureProtocol метод недопустим. Он либо неизвестен, либо отключен, потому что небезопасен.
ERR_TLS_INVALID_PROTOCOL_VERSION
Допустимые версии протокола TLS: 'TLSv1', 'TLSv1.1', или 'TLSv1.2'.
ERR_TLS_INVALID_STATE
Сокет TLS должен быть подключён и надёжно установлен. Убедитесь, что событие 'secure' выведено до продолжения.
ERR_TLS_PROTOCOL_VERSION_CONFLICT
Попытка установить версию протокола TLS minVersion или maxVersion конфликтует с попыткой явно установить secureProtocol.
ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED
Не удалось установить подсказку идентификации PSK. Подсказка может быть слишком длинной.
ERR_TLS_RENEGOTIATION_DISABLED
Была предпринята попытка повторного согласования TLS для экземпляра сокета с отключённым TLS.
ERR_TLS_REQUIRED_SERVER_NAME
При использовании TLS метод server.addContext() был вызван без предоставления имени хоста в первом параметре.
ERR_TLS_SESSION_ATTACK
Обнаружено чрезмерное количество повторных согласований TLS, что является потенциальным вектором атаки типа "отказ в обслуживании".
ERR_TLS_SNI_FROM_SERVER
Была предпринята попытка выдачи Server Name Indication со стороны серверного сокета TLS, что допустимо только со стороны клиента.
ERR_TRACE_EVENTS_CATEGORY_REQUIRED
Метод trace_events.createTracing() требует как минимум одной категории событий отслеживания.
ERR_TRACE_EVENTS_UNAVAILABLE
Модуль 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
Произошла непредвиденная ошибка (например, когда событие 'error' испускается EventEmitter, но обработчик '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 с схемами URL, отличными от file и data, не поддерживается.
ERR_VALID_PERFORMANCE_ENTRY_TYPE
При использовании API отслеживания производительности (perf_hooks) не найдены допустимые типы записей производительности.
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
Обратный вызов динамического импорта не был указан.
ERR_VM_MODULE_ALREADY_LINKED
Модуль, который пытались связать, не подходит для связывания по одной из следующих причин:
- Он уже был связан (
linkingStatusравно'linked') - Он связывается (
linkingStatusравно'linking') - Связывание этого модуля завершилось ошибкой (
linkingStatusравно'errored')
ERR_VM_MODULE_CACHED_DATA_REJECTED
Переданный параметр cachedData конструктору модуля некорректен.
ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA
Для модулей, которые уже были оценены, кэшированные данные создать нельзя.
ERR_VM_MODULE_DIFFERENT_CONTEXT
Модуль, возвращаемый функцией линкера, находится в другом контексте, чем родительский модуль. Связанные модули должны иметь один и тот же контекст.
ERR_VM_MODULE_LINKING_ERRORED
Функция линкера вернула модуль, для которого связывание завершилось ошибкой.
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_WORKER_INIT_FAILED
Инициализация Worker не удалась.
ERR_WORKER_INVALID_EXEC_ARGV
Параметр execArgv конструктора Worker содержит недопустимые флаги.
ERR_WORKER_NOT_RUNNING
Операция не удалась, так как инстанция Worker в данный момент не запущена.
ERR_WORKER_OUT_OF_MEMORY
Инстанция Worker завершилась из-за достижения лимита памяти.
ERR_WORKER_PATH
Путь к скрипту главного потока не является абсолютным путём, а также не является относительным путём, начинающимся с ./ или ../.
ERR_WORKER_UNSERIALIZABLE_ERROR
Все попытки сериализации необработанной ошибки из потока рабочего процесса завершились неудачей.
ERR_WORKER_UNSUPPORTED_OPERATION
Запрошенная функциональность не поддерживается в рабочих потоках.
ERR_ZLIB_INITIALIZATION_FAILED
Создание объекта zlib не удалось из-за неправильной конфигурации.
HPE_HEADER_OVERFLOW
Получено слишком много данных HTTP-заголовка. Для защиты от вредоносных или неправильно настроенных клиентов, если получено более 8 КБ данных HTTP-заголовка, HTTP-разбор будет прерван без создания объекта запроса или ответа, и будет отправлено событие Error с этим кодом.
HPE_UNEXPECTED_CONTENT_LENGTH
Сервер отправляет как заголовок Content-Length, так и Transfer-Encoding: chunked.
Transfer-Encoding: chunked позволяет серверу поддерживать постоянное HTTP-соединение для динамически генерируемого содержимого. В этом случае заголовок HTTP Content-Length использовать нельзя.
Используйте Content-Length или Transfer-Encoding: chunked.
MODULE_NOT_FOUND
Не удалось найти файл модуля при попытке выполнить операцию require() или import.
Коды ошибок Legacy 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 Headers.
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
Этот код ошибки был заменён на ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST в Node.js v15.0.0, потому что он больше не является точным, так как теперь существуют и другие типы передаваемых объектов.
ERR_NAPI_CONS_PROTOTYPE_OBJECT
Используется модулем Node-API, когда Constructor.prototype не является объектом.
ERR_NO_LONGER_SUPPORTED
В Node.js API был вызван метод недопустимым образом, например, Buffer.write(string, encoding, offset[, length]).
ERR_OPERATION_FAILED
Операция завершилась неудачно. Обычно используется для сигнализации об общей неудаче асинхронной операции.
ERR_OUTOFMEMORY
Используется для обозначения того, что операция привела к исчерпанию памяти.
ERR_PARSE_HISTORY_DATA
Модуль 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
Встречен SharedArrayBuffer, память которого не управляется движком JavaScript или Node.js при сериализации. Такой SharedArrayBuffer не может быть сериализован.
Это может произойти только тогда, когда нативные плагины создают SharedArrayBuffer в режиме "externalized" или помещают существующие SharedArrayBuffer в режим externalized.
ERR_UNKNOWN_STDIN_TYPE
Была предпринята попытка запустить процесс Node.js с неизвестным типом файла stdin. Эта ошибка обычно указывает на ошибку в самом Node.js, хотя пользовательский код может её вызвать.
ERR_UNKNOWN_STREAM_TYPE
Была предпринята попытка запустить процесс Node.js с неизвестным типом файла stdout или stderr. Эта ошибка обычно указывает на ошибку в самом Node.js, хотя пользовательский код может её вызвать.
ERR_V8BREAKITERATOR
Использовался API V8 BreakIterator, но полный набор данных ICU не установлен.
ERR_VALUE_OUT_OF_RANGE
Используется, когда заданное значение выходит за пределы допустимого диапазона.
ERR_VM_MODULE_NOT_LINKED
Модуль должен быть успешно связан до создания экземпляра.
ERR_WORKER_UNSUPPORTED_EXTENSION
Путь к основному скрипту worker содержит неизвестное расширение файла.
ERR_ZLIB_BINDING_CLOSED
Используется, когда попытка использования объекта zlib была предпринята после его закрытия.
ERR_CPU_USAGE
Обработка нативного вызова от process.cpuUsage не удалась.
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v16.x/docs/api/errors.html