Spec-Zone.ru › Node.js 12 LTS

Ошибки

Приложения, работающие в 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, так как они выбрасываются после того, как вызывающий код уже завершил выполнение.

Разработчики должны обратиться к документации каждого метода, чтобы точно определить, как распространяются ошибки, генерируемые этими методами.

Обработка ошибок с помощью обратных вызовов

Большинство асинхронных методов, предоставляемых ядром Node.js, следуют идиоматическому шаблону, называемому обработчиком ошибок в качестве первого аргумента. В этом шаблоне функция обратного вызова передаётся методу в качестве аргумента. Когда операция завершается успешно или возникает ошибка, функция обратного вызова вызывается с объектом 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 внутри обратного вызова обработки ошибок:

// 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(), вызывается асинхронно. К моменту вызова обратного вызова окружающий код, включая блок try…catch, уже завершит выполнение. Выбрасывание ошибки внутри обратного вызова может привести к аварийному завершению процесса 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])

  • 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 <строка> Если присутствует, адрес, к которому не удалось подключиться по сети
  • 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 Error handling. См. заголовок файла libuv errno.h (deps/uv/include/uv/errno.h в дереве исходного кода Node.js) для получения подробной информации. В случае строки она совпадает с error.code.

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) страницу man.

  • 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

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

Была предпринята попытка создать экземпляр Node.js Buffer из кода дополнения или кода встраивания, находясь в контексте JS-движка, не связанном с экземпляром Node.js. Данные, переданные методу Buffer, будут освобождены к моменту возвращения метода.

В случае возникновения этой ошибки возможной альтернативой созданию экземпляра Buffer является создание обычного Uint8Array, который отличается только прототипом результирующего объекта. Uint8Array обычно принимаются во всех ядрах 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_CONSOLE_WRITABLE_STREAM

Console был создан без потока stdout, или Console имеет не-записываемый поток stdout или stderr.

ERR_CONSTRUCT_CALL_REQUIRED

Конструктор класса был вызван без new.

ERR_CONSTRUCT_CALL_INVALID

Вызов конструктора класса, который не является вызываемым.

ERR_CPU_USAGE

Не удалось обработать вызов с process.cpuUsage.

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_INVALID_DIGEST

Был указан недопустимый алгоритм хэширования криптографического хэширования.

ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE

Тип предоставленного объекта криптографического ключа недопустим для выполняемой операции.

ERR_CRYPTO_INVALID_STATE

Криптографический метод был применен к объекту, находящемуся в недопустимом состоянии. Например, вызов cipher.getAuthTag() до вызова cipher.final().

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_DIR_CLOSED

Директория fs.Dir была закрыта ранее.

ERR_DIR_CONCURRENT_OPERATION

Добавлен в: v12.18.1

Выполнен синхронный вызов чтения или закрытия для 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_EXECUTION_ENVIRONMENT_NOT_AVAILABLE

Контекст выполнения JS не связан с окружением Node.js. Это может произойти, когда Node.js используется как встроенная библиотека, и некоторые крючки для JS-движка не настроены должным образом.

ERR_FALSY_VALUE_REJECTION

Объект Promise, обернутый через util.callbackify(), был отклонен ложным значением.

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_TRAILER_INVALID

Заголовок Trailer был установлен, хотя кодировка передачи этого не поддерживает.

ERR_HTTP2_ALTSVC_INVALID_ORIGIN

Кадры HTTP/2 ALTSVC требуют корректного origin.

ERR_HTTP2_ALTSVC_LENGTH

Кадры HTTP/2 ALTSVC ограничены максимальным размером полезной нагрузки в 16382 байта.

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

После того, как Http2Session получил кадр GOAWAY от подключённого узла, новые потоки HTTP/2 открыть нельзя.

ERR_HTTP2_HEADERS_AFTER_RESPOND

Дополнительные заголовки были указаны после начала HTTP/2 ответа.

ERR_HTTP2_HEADERS_SENT

Была предпринята попытка отправить несколько заголовков ответа.

ERR_HTTP2_HEADER_SINGLE_VALUE

Для поля HTTP/2 заголовка, которое должно иметь только одно значение, было указано несколько значений.

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 кадры требуют корректного 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_SOCKET_MANIPULATION

Была предпринята попытка напрямую манипулировать сокетом (чтение, запись, пауза, возобновление и т.д.), подключённым к Http2Session.

ERR_HTTP2_ORIGIN_LENGTH

HTTP/2 ORIGIN кадры ограничены длиной в 16382 байта.

ERR_HTTP2_OUT_OF_STREAMS

Количество потоков, созданных в одном сеансе HTTP/2, достигло максимального значения.

ERR_HTTP2_PAYLOAD_FORBIDDEN

Для кода ответа HTTP, для которого запрещена полезная нагрузка, была указана полезная нагрузка сообщения.

ERR_HTTP2_PING_CANCEL

HTTP/2 ping был отменён.

ERR_HTTP2_PING_LENGTH

Полезная нагрузка HTTP/2 ping должна иметь длину ровно 8 байт.

ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED

HTTP/2 псевдозаголовок был использован неправильно. Псевдозаголовки - это имена ключей заголовков, начинающиеся с префикса :.

ERR_HTTP2_PUSH_DISABLED

Была предпринята попытка создать поток 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_TRAILERS_ALREADY_SENT

Заголовки-прицепы уже были отправлены в Http2Stream.

ERR_HTTP2_TRAILERS_NOT_READY

Метод http2stream.sendTrailers() не может быть вызван до тех пор, пока не будет отправлено событие 'wantTrailers' на объект Http2Stream. Событие 'wantTrailers' будет отправлено только в том случае, если параметр waitForTrailers установлен для Http2Stream.

ERR_HTTP2_UNSUPPORTED_PROTOCOL

Была передана ссылка http2.connect(), использующая протокол, отличный от http: или https:.

ERR_INTERNAL_ASSERTION

Произошла ошибка в Node.js или некорректное использование внутренних компонентов Node.js. Для исправления ошибки откройте вопрос на https://github.com/nodejs/node/issues.

ERR_INCOMPATIBLE_OPTION_PAIR

Пара опций несовместима и не может использоваться одновременно.

ERR_INPUT_TYPE_NOT_ALLOWED

Устойчивость: 1 - Экспериментальная

Флаг --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_INVALID_ADDRESS_FAMILY

Указанная семейство адресов не распознаётся API Node.js.

ERR_INVALID_ARG_TYPE

В API Node.js был передан аргумент неверного типа.

ERR_INVALID_ARG_VALUE

Для данного аргумента было передано неверное или неподдерживаемое значение.

ERR_INVALID_ASYNC_ID

При использовании AsyncHooks был передан недопустимый asyncId или triggerAsyncId. Значение 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: ссылки (например, некоторые функции в модуле fs) столкнулись с файловой ссылкой с несовместимым хостом. Эта ситуация может возникнуть только в системах Unix-подобных системах, где поддерживается только localhost или пустой хост.

ERR_INVALID_FILE_URL_PATH

API Node.js, использующий file: ссылки (например, некоторые функции в модуле fs) столкнулись с файловой ссылкой с несовместимым путем. Точные семантика определения, может ли путь быть использован, зависит от платформы.

ERR_INVALID_HANDLE_TYPE

Была предпринята попытка отправить неподдерживаемый «handle» через канал IPC в дочерний процесс. Смотрите subprocess.send() и process.send() для получения дополнительной информации.

ERR_INVALID_HTTP_TOKEN

Был передан недействительный HTTP-токен.

ERR_INVALID_IP_ADDRESS

IP-адрес недействителен.

ERR_INVALID_MODULE_SPECIFIER

Строка импортируемого модуля является недопустимым URL, именем пакета или спецификатором подпути пакета.

ERR_INVALID_OPT_VALUE

В объекте опций было передано неверное или неожиданное значение.

ERR_INVALID_OPT_VALUE_ENCODING

Была передана недопустимая или неизвестная кодировка файла.

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_SYNC_FORK_INPUT

В качестве ввода stdio для асинхронного разветвления был передан 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_PARSE_POLICY

Была предпринята попытка загрузить политический манифест, но манифест не удалось проанализировать. См. документацию для манифестов политики для получения дополнительной информации.

ERR_MANIFEST_TDZ

Была предпринята попытка чтения из манифеста политики, но инициализация манифеста ещё не произошла. Вероятно, это ошибка в Node.js.

ERR_MANIFEST_UNKNOWN_ONERROR

Манифест политики был загружен, но его поведение «onerror» имело неизвестное значение. Для получения дополнительной информации см. документацию по манифестам политики политики.

ERR_MEMORY_ALLOCATION_FAILED

Была предпринята попытка выделить память (обычно на уровне C++), но она не удалась.

ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE

Добавлен в: v12.19.0

Сообщение, отправленное в 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_DYNAMIC_INSTANTIATE_HOOK

Стабильность: 1 - Экспериментально

Загрузчик модулей ES Модуль указал format: 'dynamic', но не предоставил dynamicInstantiate.

ERR_MISSING_OPTION

Для API, принимающих объекты параметров, некоторые параметры могут быть обязательными. Этот код вызывается, если отсутствует необходимый параметр.

ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST

Объект, который необходимо явно перечислить в аргументе transferList, был найден в объекте, переданном в вызов postMessage(), но не был указан в transferList для этого вызова. Обычно это MessagePort.

ERR_MISSING_PASSPHRASE

Была предпринята попытка чтения зашифрованного ключа без указания парольной фразы.

ERR_MISSING_PLATFORM_FOR_WORKER

Платформа V8, используемая этим экземпляром Node.js, не поддерживает создание рабочих процессов. Это вызвано отсутствием поддержки рабочих процессов в модуле embedder. В частности, эта ошибка не будет возникать при использовании стандартных сборок Node.js.

ERR_MODULE_NOT_FOUND

Стабильность: 1 - Экспериментально

Модуль ES Модуль не удалось разрешить.

ERR_MULTIPLE_CALLBACK

Обработчик событий был вызван более одного раза.

Обработчик событий почти всегда предназначен для вызова только один раз, так как запрос может быть выполнен или отклонен, но не оба одновременно. Последнее было бы возможно, вызвав обработчик событий более одного раза.

ERR_NAPI_CONS_FUNCTION

При использовании N-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

Модуль native add-on, не учитывающий контекст, был загружен в процессе, в котором они запрещены.

ERR_OUT_OF_RANGE

Заданное значение выходит за пределы допустимого диапазона.

ERR_PACKAGE_IMPORT_NOT_DEFINED

Поле package.json "imports" не определяет отображение заданного внутреннего спецификатора пакета.

ERR_PACKAGE_PATH_NOT_EXPORTED

Поле package.json "exports" не экспортирует запрашиваемый подпуть. Поскольку экспорты инкапсулированы, неэкспортированные внутренние модули не могут быть импортированы через разрешение пакетов, за исключением использования абсолютного URL.

ERR_PROTO_ACCESS

Доступ к Object.prototype.__proto__ был запрещён с помощью --disable-proto=throw. Для получения и установки прототипа объекта необходимо использовать Object.getPrototypeOf и Object.setPrototypeOf.

ERR_REQUIRE_ESM

Стабильность: 1 - Экспериментально

Была предпринята попытка 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_CANNOT_SEND

Данные не могли быть отправлены по сокету.

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_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_INVALID

При использовании TLS имя хоста/IP-адрес удаленного узла не совпал ни с одним из subjectAltNames в его сертификате.

ERR_TLS_DH_PARAM_SIZE

При использовании TLS параметр, предложенный для протокола согласования ключей Диффи-Хеллмана (DH), слишком мал. По умолчанию длина ключа должна быть не меньше 1024 бит, чтобы избежать уязвимостей, хотя настоятельно рекомендуется использовать 2048 бит или больше для большей безопасности.

ERR_TLS_HANDSHAKE_TIMEOUT

Таймаут рукопожатия TLS/SSL. В этом случае сервер также должен прервать соединение.

ERR_TLS_INVALID_CONTEXT

Добавлен в: v12.16.0

Контекст должен быть SecureContext.

ERR_TLS_INVALID_STATE

Добавлен в: v12.17.0

Сокет TLS должен быть подключен и безопасно установлен. Убедитесь, что событие 'secure' было сгенерировано перед продолжением.

ERR_TLS_INVALID_PROTOCOL_METHOD

Указанный secureProtocol метод недействителен. Он либо неизвестен, либо отключен из-за небезопасности.

ERR_TLS_INVALID_PROTOCOL_VERSION

Допустимые версии протокола TLS — 'TLSv1', 'TLSv1.1', или 'TLSv1.2'.

ERR_TLS_PROTOCOL_VERSION_CONFLICT

Попытка установить версию протокола TLS minVersion или maxVersion конфликтует с попыткой установить secureProtocol явно. Используйте один из механизмов.

ERR_TLS_RENEGOTIATION_DISABLED

Была предпринята попытка повторного согласования TLS для сокета с отключенным TLS.

ERR_TLS_REQUIRED_SERVER_NAME

При использовании TLS метод server.addContext() был вызван без предоставления имени хоста в первом параметре.

ERR_TLS_SESSION_ATTACK

Обнаружено чрезмерное количество повторных согласований TLS, что представляет собой потенциальный вектор атак типа «отказ в обслуживании».

ERR_TLS_SNI_FROM_SERVER

Была предпринята попытка выдать указание имени сервера (SNI) со стороны сокета сервера TLS, что допустимо только со стороны клиента.

ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED

Не удалось установить подсказку идентификатора PSK. Подсказка может быть слишком длинной.

ERR_TRACE_EVENTS_CATEGORY_REQUIRED

Метод trace_events.createTracing() требует как минимум одну категорию событий трассировки.

ERR_TRACE_EVENTS_UNAVAILABLE

Модуль trace_events не удалось загрузить, поскольку Node.js был скомпилирован со флагом --without-v8-platform.

ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER

При сериализации был встречен SharedArrayBuffer, память которого не управляется движком JavaScript или Node.js. Такой SharedArrayBuffer не может быть сериализован.

Это может произойти только в случае, когда нативные дополнения создают SharedArrayBuffer в режиме "externalized" или помещают существующие SharedArrayBuffer в режим externalized.

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

Стабильность: 1 - Экспериментальная

Была предпринята попытка загрузить модуль с неизвестным или неподдерживаемым расширением файла.

ERR_UNKNOWN_MODULE_FORMAT

Стабильность: 1 - Экспериментальная

Была предпринята попытка загрузить модуль с неизвестным или неподдерживаемым форматом.

ERR_UNKNOWN_SIGNAL

В API, ожидающем допустимый сигнал (такой как subprocess.kill()), был передан недопустимый или неизвестный сигнал процесса.

ERR_UNSUPPORTED_DIR_IMPORT

import импорт директории не поддерживается. Вместо этого ссылайтесь на пакет по его имени и определяйте пользовательский подпуть в поле "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_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_EXTENSION

У пути к главному скрипту работника неизвестное расширение файла.

ERR_WORKER_UNSUPPORTED_OPERATION

Запрашиваемая функциональность не поддерживается в потоках работ.

ERR_ZLIB_INITIALIZATION_FAILED

Создание объекта zlib не удалось из-за неправильной конфигурации.

HPE_HEADER_OVERFLOW

История
Версия Изменения
v11.4.0

Максимальный размер заголовка в http_parser был установлен в 8 КБ.

Получено слишком много данных HTTP-заголовков. Для защиты от злонамеренных или неправильно настроенных клиентов, если получено более 8 КБ данных HTTP-заголовков, парсинг HTTP прервется без создания объекта запроса или ответа, и будет излучен Error с этим кодом.

HPE_UNEXPECTED_CONTENT_LENGTH

Сервер отправляет как заголовок Content-Length, так и Transfer-Encoding: chunked.

Transfer-Encoding: chunked позволяет серверу поддерживать постоянное HTTP-соединение для динамически генерируемого контента. В этом случае заголовок Content-Length HTTP не может быть использован.

Используйте Content-Length или Transfer-Encoding: chunked.

MODULE_NOT_FOUND

История
Версия Изменения
v12.0.0

Добавлено свойство requireStack.

Файл модуля не удалось разрешить при попытке операции require() или import.

Коды ошибок устаревшего Node.js

Стабильность: 0 - Устаревший. Эти коды ошибок не согласованы или были удалены.

ERR_CANNOT_TRANSFER_OBJECT

Передаваемое значение в postMessage() содержало объект, который не поддерживается для передачи.

ERR_CLOSED_MESSAGE_PORT

Добавлен в: v10.5.0Удален в: v11.12.0

Была попытка использовать экземпляр MessagePort в закрытом состоянии, обычно после вызова .close().

ERR_CRYPTO_HASH_DIGEST_NO_UTF16

Добавлен в: v9.0.0Удален в: v12.12.0

Использовалась кодировка UTF-16 с hash.digest(). Хотя метод hash.digest() допускает передачу аргумента encoding, что приводит к возврату строки вместо Buffer, кодировка UTF-16 (например, ucs или utf16le) не поддерживается.

ERR_HTTP2_FRAME_ERROR

Добавлен в: v9.0.0Удален в: v10.0.0

Используется при возникновении ошибки при отправке отдельного кадра на сеансе HTTP/2.

ERR_HTTP2_HEADERS_OBJECT

Добавлен в: v9.0.0Удален в: v10.0.0

Используется, когда ожидается объект HTTP/2 Headers.

ERR_HTTP2_HEADER_REQUIRED

Добавлен в: v9.0.0Удален в: v10.0.0

Используется, когда отсутствует обязательный заголовок в сообщении HTTP/2.

ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND

Добавлен в: v9.0.0Удален в: v10.0.0

Информационные заголовки HTTP/2 должны отправляться до вызова метода Http2Stream.prototype.respond().

ERR_HTTP2_STREAM_CLOSED

Добавлен в: v9.0.0Удален в: v10.0.0

Используется, когда действие было выполнено над потоком HTTP/2, который уже был закрыт.

ERR_HTTP_INVALID_CHAR

Добавлен в: v9.0.0Удален в: v10.0.0

Используется, когда в сообщении состояния HTTP-ответа (фразе причины) обнаружен недопустимый символ.

ERR_INDEX_OUT_OF_RANGE

Добавлен в: v10.0.0Удален в: v11.0.0

Указанный индекс находился вне допустимого диапазона (например, отрицательные смещения).

ERR_NAPI_CONS_PROTOTYPE_OBJECT

Добавлен в: v9.0.0Удален в: v10.0.0

Используется модулем N-API когда Constructor.prototype не является объектом.

ERR_NO_LONGER_SUPPORTED

API Node.js был вызван недопустимым способом, например, Buffer.write(string, encoding, offset[, length]).

ERR_OUTOFMEMORY

Добавлен в: v9.0.0Удален в: v10.0.0

Используется для общего определения того, что операция привела к состоянию недостатка памяти.

ERR_PARSE_HISTORY_DATA

Добавлен в: v9.0.0Удален в: v10.0.0

Модуль repl не смог разобрать данные из файла истории REPL.

ERR_STDERR_CLOSE

История
Версия Изменения
v10.12.0

Вместо вывода ошибки, process.stderr.end() теперь только закрывает сторону потока, но не базовый ресурс, что делает эту ошибку устаревшей.

v10.12.0

Удален в: v10.12.0

Была предпринята попытка закрыть поток process.stderr. По умолчанию Node.js не позволяет пользователю закрывать потоки stdout или stderr.

ERR_STDOUT_CLOSE

История
Версия Изменения
v10.12.0

Вместо вывода ошибки, process.stderr.end() теперь только закрывает сторону потока, но не базовый ресурс, что делает эту ошибку устаревшей.

v10.12.0

Удален в: v10.12.0

Была предпринята попытка закрыть поток process.stdout. По умолчанию Node.js не позволяет пользователю закрывать потоки stdout или stderr.

ERR_STREAM_READ_NOT_IMPLEMENTED

Добавлен в: v9.0.0Удален в: v10.0.0

Используется, когда делается попытка использовать читаемый поток, который не реализовал readable._read().

ERR_TLS_RENEGOTIATION_FAILED

Добавлен в: v9.0.0Удален в: v10.0.0

Используется, когда запрос на возобновление TLS завершился неудачно по неспецифическим причинам.

ERR_UNKNOWN_BUILTIN_MODULE

Добавлен в: v8.0.0Удален в: v9.0.0

Код ошибки 'ERR_UNKNOWN_BUILTIN_MODULE' используется для идентификации определенного типа внутренней ошибки Node.js, которую обычно не следует вызывать пользовательским кодом. Случаи этой ошибки указывают на внутреннюю ошибку в самом бинарном файле Node.js.

ERR_UNKNOWN_STDIN_TYPE

Добавлен в: v8.0.0Удален в: v11.7.0

Была предпринята попытка запустить процесс Node.js с неизвестным типом файла stdin. Эта ошибка обычно указывает на ошибку в самом Node.js, хотя пользовательский код может ее вызвать.

ERR_UNKNOWN_STREAM_TYPE

Добавлен в: v8.0.0Удален в: v11.7.0

Была предпринята попытка запустить процесс Node.js с неизвестным типом файла stdout или stderr. Эта ошибка обычно указывает на ошибку в самом Node.js, хотя пользовательский код может ее вызвать.

ERR_V8BREAKITERATOR

Использовался API V8 BreakIterator, но полный набор данных ICU не установлен.

ERR_VALUE_OUT_OF_RANGE

Добавлен в: v9.0.0Удален в: v10.0.0

Используется, когда заданное значение находится вне допустимого диапазона.

ERR_VM_MODULE_NOT_LINKED

Модуль должен быть успешно подключен перед инициализацией.

ERR_ZLIB_BINDING_CLOSED

Добавлен в: v9.0.0Удален в: v10.0.0

Используется при попытке использования объекта zlib после его закрытия.

© 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-v12.x/docs/api/errors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API