Spec-Zone.ru › Node.js 10 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 (err) { }) уже завершит работу. Выброс ошибки внутри обратного вызова может привести к аварийному завершению процесса Node.js в большинстве случаев. Если включены области домены или зарегистрирован обработчик с помощью process.on('uncaughtException'), такие ошибки могут быть перехвачены.

Класс: Ошибка

Объект JavaScript Error, который не обозначает каких-либо конкретных обстоятельств, почему произошла ошибка. Объекты Error сохраняют «стек вызовов», подробно описывающий точку в коде, в которой был создан Error, и могут предоставить текстовое описание ошибки.

Только для криптографии, объекты Error будут включать стек ошибок OpenSSL в отдельном свойстве, называемом opensslErrorStack, если он доступен при возникновении ошибки.

Все ошибки, сгенерированные 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 или количеством доступных кадров в текущем цикле событий.

Ошибки системного уровня генерируются как расширенные экземпляры Error, которые подробно описаны здесь.

Класс: AssertionError

Подкласс Error, указывающий на неудачу проверки. Подробности см. в Class: assert.AssertionError.

Класс: RangeError

Подкласс Error, указывающий, что предоставленный аргумент не находился в наборе или диапазоне допустимых значений для функции; будь то числовой диапазон или за пределами набора вариантов для данного параметра функции.

require('net').connect(-1);
// throws "RangeError: "port" option should be >= 0 and < 65536: -1"

Node.js будет генерировать и выбрасывать экземпляры RangeError немедленно в качестве формы проверки аргументов.

Класс: ReferenceError

Подкласс Error, указывающий на попытку доступа к переменной, которая не определена. Такие ошибки обычно указывают на опечатки в коде или на иные ошибки в программе.

Хотя клиентский код может генерировать и распространять эти ошибки, на практике это делает только V8.

doesNotExist;
// throws ReferenceError, doesNotExist is not a variable in this program.

Если приложение не генерирует и не выполняет код динамически, экземпляры ReferenceError всегда следует рассматривать как ошибку в коде или его зависимостях.

Класс: SyntaxError

Подкласс Error, указывающий на то, что программа не является допустимым JavaScript. Эти ошибки могут быть сгенерированы и распространены только в результате оценки кода. Оценка кода может происходить в результате eval, Function, require или vm. Эти ошибки почти всегда указывают на ошибку в программе.

try {
  require('vm').runInThisContext('binary ! isNotOk');
} catch (err) {
  // err will be a SyntaxError
}

Экземпляры SyntaxError необрабатываемы в контексте, который их создал — они могут быть перехвачены только другими контекстами.

Класс: TypeError

Подкласс 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++.

Системные ошибки

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

Системные ошибки обычно генерируются на уровне системных вызовов. Полный список см. в errno(3) man-странице.

В Node.js системные ошибки — это объекты Error с дополнительными свойствами.

Класс: SystemError

  • address <string> Если присутствует, адрес, по которому произошел сбой сетевого подключения
  • code <string> Строковый код ошибки
  • dest <string> Если присутствует, путь к файлу назначения при сообщении об ошибке файловой системы
  • errno <number> | <string> Код ошибки, предоставленный системой
  • info <Object> Если присутствует, дополнительные сведения об ошибке
  • message <string> Человекопонятное описание ошибки, предоставленное системой
  • path <string> Если присутствует, путь к файлу при сообщении об ошибке файловой системы
  • port <number> Если присутствует, сетевой порт, который недоступен
  • syscall <string> Имя системного вызова, вызвавшего ошибку

error.address

  • <string>

Если присутствует, error.address — это строка, описывающая адрес, по которому сбой сетевого подключения.

error.code

  • <string>

Свойство error.code — это строка, представляющая код ошибки.

error.dest

  • <string>

Если присутствует, error.dest — это путь к файлу назначения при сообщении об ошибке файловой системы.

error.errno

  • <string> | <number>

Свойство error.errno — это число или строка. Если это число, оно является отрицательным значением, соответствующим коду ошибки, определенному в libuv Error handling. Подробности см. в заголовочном файле libuv errno.h (deps/uv/include/uv/errno.h в исходном коде Node.js). В случае строки это то же самое, что и error.code.

error.info

  • <Object>

Если присутствует, error.info — это объект с деталями об ошибке.

error.message

  • <string>

error.message — это человекопонятное описание ошибки, предоставленное системой.

error.path

  • <string>

Если присутствует, error.path — это строка, содержащая соответствующий недействительный путь.

error.port

  • <number>

Если присутствует, error.port — это сетевой порт, который недоступен.

error.syscall

  • <string>

Свойство error.syscall — это строка, описывающая системный вызов, который завершился неудачей.

Общие системные ошибки

Это список системных ошибок, с которыми часто сталкиваются при написании программы Node.js. Полный список см. в errno(3) man-странице.

END_OF_DOCUMENT_MARKER
  • 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.

  • EPERM (Операция запрещена): Попытка выполнить операцию, требующую повышенных привилегий.

  • EPIPE (Разрыв канала): Запись в канал, сокет или FIFO, для которого нет процесса для чтения данных. Обычно возникает на уровнях net и http, указывая, что удалённая сторона потока, в который осуществляется запись, была закрыта.

  • ETIMEDOUT (Таймаут операции): Запрос подключения или отправки завершился неудачей, потому что подключенная сторона не ответила должным образом в течение определенного периода времени. Обычно возникает при использовании http или net. Часто свидетельствует о том, что socket.end() не был правильно вызван.

Коды ошибок 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_OUT_OF_BOUNDS

Была предпринята попытка операции за пределами границ Buffer.

ERR_BUFFER_TOO_LARGE

Попытка создать Buffer больше, чем максимальный разрешённый размер.

ERR_CANNOT_TRANSFER_OBJECT

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

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_REQUIRED

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

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_DIGEST_NO_UTF16

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

ERR_CRYPTO_HASH_FINALIZED

hash.digest() был вызван несколько раз. Метод hash.digest() должен вызываться не более одного раза на экземпляр объекта Hash.

ERR_CRYPTO_HASH_UPDATE_FAILED

hash.update() завершился неудачей по какой-либо причине. Это, скорее всего, должно происходить редко.

ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS

Выбранное кодирование открытого или закрытого ключа несовместимо с другими параметрами.

ERR_CRYPTO_INVALID_DIGEST

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

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_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 util.TextDecoder() были некорректны в соответствии с предоставленной кодировкой.

ERR_ENCODING_NOT_SUPPORTED

Кодировка, предоставленная API util.TextDecoder(), не являлась одной из поддерживаемых WHATWG кодировок.

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 требуется допустимый источник.

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

После того, как 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 требуют допустимого источника.

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

Полезная нагрузка запроса ping HTTP/2 должна составлять ровно 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() получил URL, использующий любой протокол, кроме http: или https:.

ERR_INDEX_OUT_OF_RANGE

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

ERR_INSPECTOR_ALREADY_CONNECTED

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

ERR_INSPECTOR_CLOSED

При использовании модуля inspector была предпринята попытка использования инспектора после закрытия сеанса.

ERR_INSPECTOR_NOT_AVAILABLE

Модуль inspector недоступен для использования.

ERR_INSPECTOR_NOT_CONNECTED

При использовании модуля inspector была предпринята попытка использования инспектора до его подключения.

ERR_INVALID_ADDRESS_FAMILY

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

ERR_INVALID_ARG_TYPE

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

ERR_INVALID_ARG_VALUE

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

ERR_INVALID_ARRAY_LENGTH

Массив имел несоответствующую длину или находился вне допустимого диапазона.

ERR_INVALID_ASYNC_ID

Был передан некорректный asyncId или triggerAsyncId с использованием AsyncHooks. Идентификатор, меньший -1, никогда не должен встречаться.

ERR_INVALID_BUFFER_SIZE

Произведена перестановка на Buffer, но её размер несовместим с операцией.

ERR_INVALID_CALLBACK

Функция обратного вызова была необходима, но не была предоставлена API Node.js.

ERR_INVALID_CHAR

В заголовках были обнаружены некорректные символы.

ERR_INVALID_CURSOR_POS

Курсор в данном потоке не может быть перемещён в указанную строку без указанного столбца.

ERR_INVALID_DOMAIN_NAME

hostname не может быть распарсено из предоставленного URL.

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_OPT_VALUE

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

ERR_INVALID_OPT_VALUE_ENCODING

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

ERR_INVALID_PERFORMANCE_MARK

При использовании API Performance Timing (perf_hooks), метка производительности некорректна.

ERR_INVALID_PROTOCOL

Был передан некорректный options.protocol.

ERR_INVALID_REPL_EVAL_CONFIG

В конфигурации REPL были установлены оба параметра breakEvalOnSigint и eval, что не поддерживается.

ERR_INVALID_RETURN_PROPERTY

Выбрасывается в случае, если функция опции не предоставляет корректное значение для одного из возвращаемых свойств объекта при выполнении.

ERR_INVALID_RETURN_PROPERTY_VALUE

Выбрасывается в случае, если функция опции не предоставляет ожидаемый тип значения для одного из возвращаемых свойств объекта при выполнении.

ERR_INVALID_RETURN_VALUE

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

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

В конструктор WHATWG URL для парсинга был передан некорректный 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_MEMORY_ALLOCATION_FAILED

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

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 - Экспериментальный

Загрузочный крючок модуля ES6 был указан format: 'dynamic', но не предоставил крючок dynamicInstantiate.

ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST

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

ERR_MISSING_MODULE

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

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

ERR_MISSING_PLATFORM_FOR_WORKER

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

ERR_MODULE_RESOLUTION_LEGACY

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

Произошла ошибка при разрешении импорта в модуле ES6.

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 crypto.

ERR_NO_ICU

Была предпринята попытка использовать функции, требующие ICU, но Node.js был скомпилирован без поддержки ICU.

ERR_NO_LONGER_SUPPORTED

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

ERR_OUT_OF_RANGE

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

ERR_REQUIRE_ESM

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

Была предпринята попытка require() модуля ES6.

ERR_SCRIPT_EXECUTION_INTERRUPTED

Выполнение скрипта было прервано SIGINT (например, при нажатии Ctrl+C).

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_NOT_RUNNING

Вызов был сделан, но подсистема UDP не работала.

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

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

ERR_TLS_PROTOCOL_VERSION_CONFLICT

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

ERR_TLS_RENEGOTIATE

Попытка повторного согласования сессии TLS не удалась.

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_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER

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

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

ERR_TRANSFORM_ALREADY_TRANSFORMING

Поток Transform завершился, в то время как он все еще выполнял преобразование.

ERR_TRANSFORM_WITH_LENGTH_0

Поток Transform завершился с данными, которые все еще хранятся в буфере записи.

ERR_TTY_INIT_FAILED

Инициализация TTY завершилась неудачно из-за системной ошибки.

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_ENCODING

В API был передан недопустимый или неизвестный параметр кодировки.

ERR_UNKNOWN_FILE_EXTENSION

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

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

ERR_UNKNOWN_MODULE_FORMAT

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

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

ERR_UNKNOWN_SIGNAL

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

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

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

ERR_VM_MODULE_LINKING_ERRORED

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

ERR_VM_MODULE_NOT_LINKED

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

ERR_VM_MODULE_NOT_MODULE

Выполненное значение обещания компоновки не является объектом vm.SourceTextModule.

ERR_VM_MODULE_STATUS

Текущее состояние модуля не допускает выполнения данной операции. Конкретное значение ошибки зависит от конкретной функции.

ERR_WORKER_PATH

Путь к основному скрипту обработчика не является абсолютным путем и не является относительным путем, начинающимся с ./ или ../.

ERR_WORKER_UNSERIALIZABLE_ERROR

Все попытки сериализовать необработанное исключение из потока обработчика завершились неудачно.

ERR_WORKER_UNSUPPORTED_EXTENSION

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

ERR_ZLIB_INITIALIZATION_FAILED

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

HPE_HEADER_OVERFLOW

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

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

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

MODULE_NOT_FOUND

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

Код ошибок Legacy Node.js

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

ERR_HTTP2_FRAME_ERROR

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

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

ERR_HTTP2_HEADERS_OBJECT

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

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

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_NAPI_CONS_PROTOTYPE_OBJECT

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

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

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_VALUE_OUT_OF_RANGE

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

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

ERR_ZLIB_BINDING_CLOSED

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

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

Другие коды ошибок

Эти ошибки никогда не были выпущены, но присутствовали в ветке master между выпусками.

ERR_FS_WATCHER_ALREADY_STARTED

Была предпринята попытка запустить наблюдатель, возвращённый fs.watch(), который уже запущен.

ERR_FS_WATCHER_NOT_STARTED

Была предпринята попытка инициировать операции над наблюдателем, возвращённым fs.watch(), который ещё не запущен.

ERR_HTTP2_ALREADY_SHUTDOWN

Возникает при нескольких попытках завершения сессии HTTP/2.

ERR_HTTP2_ERROR

Произошла неопределённая ошибка HTTP/2.

ERR_INVALID_REPL_HISTORY

Используется в repl в случае использования старого файла истории, и при возникновении ошибки при попытке его чтения и разбора.

ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK

Используется, когда загрузчик модулей ES6 (ES6 module) указывает format: 'dynamic', но не предоставляет загрузчик dynamicInstantiate.

ERR_STREAM_HAS_STRINGDECODER

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

const Socket = require('net').Socket;
const instance = new Socket();

instance.setEncoding('utf8');

ERR_STRING_TOO_LARGE

Была предпринята попытка создать строку размером больше максимального разрешённого.

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

Spec-Zone.ru

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