Spec-Zone.ru › Node.js 22 LTS

Устаревшие API

API Node.js могут быть объявлены устаревшими по любой из следующих причин:

  • Использование API небезопасно.
  • Доступен улучшенный альтернативный API.
  • В будущей основной версии ожидаются несовместимые изменения API.

В Node.js используются четыре вида устаревания:

  • Только в документации
  • Для приложений (только код, не относящийся к node_modules)
  • В среде выполнения (весь код)
  • Окончательное удаление

Устаревание, отмеченное только в документации, указывается исключительно в документации по API Node.js. Оно не вызывает побочных эффектов при работе Node.js. Некоторые устаревшие API, отмеченные только в документации, при запуске с флагом --pending-deprecation (или его альтернативой — переменной окружения NODE_PENDING_DEPRECATION=1) вызывают предупреждение во время выполнения, аналогично устаревшим API, вызывающим предупреждения во время выполнения, описанным ниже. Устаревшие API, отмеченные только в документации и поддерживающие этот флаг, явно помечены в списке устаревших API.

Устаревание API для приложений, затрагивающее только код, не относящийся к node_modules, по умолчанию генерирует предупреждение процесса, которое выводится в stderr при первом использовании устаревшего API в коде, загруженном не из node_modules. При использовании флага командной строки --throw-deprecation устаревание API во время выполнения приводит к выбросу ошибки. При использовании --pending-deprecation предупреждения также выводятся для кода, загруженного из node_modules.

Устаревание API во время выполнения, затрагивающее весь код, аналогично устареванию API во время выполнения для кода, не относящегося к node_modules, за исключением того, что оно также вызывает предупреждение для кода, загруженного из node_modules.

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

Отмена устаревания

Иногда устаревание API может быть отменено. В таких случаях этот документ будет обновлён соответствующей информацией о принятом решении. Однако идентификатор устаревания изменён не будет.

Список устаревших API

DEP0001: http.OutgoingMessage.prototype.flush

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

Снятие с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v1.6.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

OutgoingMessage.prototype.flush() удалён. Вместо него используйте OutgoingMessage.prototype.flushHeaders().

DEP0002: require('_linklist')

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

Снятие с эксплуатации.

v6.12.0

Назначен код устаревания.

v5.0.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Модуль _linklist устарел. Используйте альтернативу из пользовательской экосистемы.

DEP0003: _writableState.buffer

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

Снятие с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.15

Устаревание во время выполнения.

Тип: Снято с эксплуатации

_writableState.buffer удалён. Вместо него используйте _writableState.getBuffer().

DEP0004: CryptoStream.prototype.readyState

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

Снятие с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.4.0

Устаревание только в документации.

Тип: Снято с эксплуатации

Свойство CryptoStream.prototype.readyState удалено.

DEP0005: конструктор Buffer()

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

Устаревание во время выполнения.

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание только в документации.

Тип: Для приложения (только код, не node_modules)

Функция Buffer() и конструктор new Buffer() устарели из-за проблем с удобством использования API, которые могут привести к случайным проблемам безопасности.

В качестве альтернативы используйте один из следующих способов создания объектов Buffer:

  • Buffer.alloc(size[, fill[, encoding]]): создаёт Buffer с инициализированной памятью.
  • Buffer.allocUnsafe(size): создаёт Buffer с неинициализированной памятью.
  • Buffer.allocUnsafeSlow(size): создаёт Buffer с неинициализированной памятью.
  • Buffer.from(array): создаёт Buffer с копией array
  • Buffer.from(arrayBuffer[, byteOffset[, length]]) — создаёт Buffer, которая оборачивает указанный arrayBuffer.
  • Buffer.from(buffer): создаёт Buffer, копирующую buffer.
  • Buffer.from(string[, encoding]): создаёт Buffer, копирующую string.

Без --pending-deprecation предупреждения во время выполнения выдаются только для кода, который не находится в node_modules. Это означает, что для использования Buffer() в зависимостях предупреждения об устаревании выдаваться не будут. С --pending-deprecation предупреждение во время выполнения будет выдаваться независимо от того, где используется Buffer().

DEP0006: child_process options.customFds

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

Снятие с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.14

Устаревание во время выполнения.

v0.5.10

Устаревание только в документации.

Тип: Снято с эксплуатации

В методах child_process, spawn(), fork() и exec() модуля параметр options.customFds устарел. Вместо него следует использовать параметр options.stdio.

DEP0007: Замените cluster worker.suicide на worker.exitedAfterDisconnect

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

Снятие с эксплуатации.

v7.0.0

Устаревание во время выполнения.

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание только в документации.

Тип: Снято с эксплуатации

В одной из предыдущих версий cluster Node.js в объект Worker было добавлено логическое свойство с именем suicide. Это свойство предназначалось для указания того, как и почему завершил работу экземпляр Worker. В Node.js 6.0.0 старое свойство устарело и было заменено новым свойством worker.exitedAfterDisconnect. Прежнее имя свойства неточно описывало его фактическую семантику и имело излишне эмоциональную окраску.

DEP0008: require('node:constants')

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

Назначен код устаревания.

v6.3.0

Устаревание только в документации.

Тип: Устаревание только в документации

Модуль node:constants устарел. Чтобы получить доступ к константам, относящимся к определённым встроенным модулям Node.js, разработчикам следует обращаться к свойству constants, доступному в соответствующем модуле. Например, require('node:fs').constants и require('node:os').constants.

DEP0009: crypto.pbkdf2 без дайджеста

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

Снятие с эксплуатации (для digest === null).

v11.0.0

Устаревание во время выполнения (для digest === null).

v8.0.0

Снятие с эксплуатации (для digest === undefined).

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание во время выполнения (для digest === undefined).

Тип: Снято с эксплуатации

Использование API crypto.pbkdf2() без указания дайджеста было признано устаревшим в Node.js 6.0, поскольку по умолчанию метод использовал нерекомендуемый дайджест 'SHA1'. Ранее выводилось предупреждение об устаревании. Начиная с Node.js 8.0.0 вызов crypto.pbkdf2() или crypto.pbkdf2Sync() с параметром digest, установленным в undefined, будет приводить к выбросу исключения TypeError.

Начиная с Node.js v11.0.0 вызов этих функций с параметром digest, установленным в null, выводил предупреждение об устаревании, чтобы поведение соответствовало случаю, когда digest имеет значение undefined.

Теперь, однако, передача любого из значений — undefined или null — приведёт к выбросу исключения TypeError.

DEP0010: crypto.createCredentials

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

Снятие с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.13

Устаревание во время выполнения.

Тип: Снято с эксплуатации

API crypto.createCredentials() удалён. Вместо него используйте tls.createSecureContext().

DEP0011: crypto.Credentials

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

Снятие с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.13

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Класс crypto.Credentials удалён. Вместо него используйте tls.SecureContext.

DEP0012: Domain.dispose

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

Снятие с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.7

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Domain.dispose() удалён. Явно обрабатывайте ошибки ввода-вывода, назначая обработчики событий ошибок для домена.

DEP0013: асинхронная функция fs без функции обратного вызова

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

Снятие с эксплуатации.

v7.0.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Начиная с Node.js 10.0.0 вызов асинхронной функции без функции обратного вызова приводит к выбросу исключения TypeError. См. https://github.com/nodejs/node/pull/12562.

DEP0014: устаревший строковый интерфейс fs.read

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

Снятие с эксплуатации.

v6.0.0

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.1.96

Устаревание только в документации.

Тип: Снято с эксплуатации

Устаревший интерфейс String метода fs.read() признан устаревшим. Вместо него используйте API Buffer, как указано в документации.

DEP0015: устаревший строковый интерфейс fs.readSync

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

Снятие с эксплуатации.

v6.0.0

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.1.96

Устаревание только в документации.

Тип: Снято с эксплуатации

Устаревший интерфейс String метода fs.readSync() признан устаревшим. Вместо него используйте API Buffer, как указано в документации.

DEP0016: GLOBAL/root

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

Снятие с эксплуатации.

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Псевдонимы GLOBAL и root свойства global были признаны устаревшими в Node.js 6.0.0 и впоследствии удалены.

DEP0017: Intl.v8BreakIterator

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

Снятие с эксплуатации.

v7.0.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Intl.v8BreakIterator было нестандартным расширением и удалено. См. Intl.Segmenter.

DEP0018: Необработанные отклонения промисов

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

Снятие с эксплуатации.

v7.0.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Необработанные отклонения промисов признаны устаревшими. По умолчанию необработанные отклонения промисов завершают процесс Node.js с ненулевым кодом выхода. Чтобы изменить обработку необработанных отклонений в Node.js, используйте параметр командной строки --unhandled-rejections.

DEP0019: require('.') разрешался за пределами каталога

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

Функциональность удалена.

v6.12.0, v4.8.6

Назначен код устаревания.

v1.8.1

Устаревание во время выполнения.

Тип: Снято с эксплуатации

В некоторых случаях require('.') мог разрешаться за пределами каталога пакета. Это поведение удалено.

DEP0020: Server.connections

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

Server.connections удалено.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.9.7

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Свойство Server.connections было объявлено устаревшим в Node.js v0.9.7 и удалено. Вместо него используйте метод Server.getConnections().

DEP0021: Server.listenFD

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.7.12

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Метод Server.listenFD() был объявлен устаревшим и удален. Вместо него используйте Server.listen({fd: <number>}).

DEP0022: os.tmpDir()

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

Снято с эксплуатации.

v7.0.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

API os.tmpDir() было объявлено устаревшим в Node.js 7.0.0 и впоследствии удалено. Вместо него используйте os.tmpdir().

DEP0023: os.getNetworkInterfaces()

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.6.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

Метод os.getNetworkInterfaces() объявлен устаревшим. Вместо него используйте метод os.networkInterfaces().

DEP0024: REPLServer.prototype.convertToContext()

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

Снято с эксплуатации.

v7.0.0

Устаревание во время выполнения.

Тип: Снято с эксплуатации

API REPLServer.prototype.convertToContext() удален.

DEP0025: require('node:sys')

История
Версия Изменения
v6.12.0, v4.8.6

Назначен код устаревания.

v1.0.0

Устаревание во время выполнения.

Тип: Среда выполнения

Модуль node:sys объявлен устаревшим. Вместо него используйте модуль util.

DEP0026: util.print()

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.3

Устаревание во время выполнения.

Тип: Снято с эксплуатации

util.print() удален. Вместо него используйте console.log().

DEP0027: util.puts()

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.3

Устаревание во время выполнения.

Тип: Снято с эксплуатации

util.puts() удален. Вместо него используйте console.log().

DEP0028: util.debug()

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.3

Устаревание во время выполнения.

Тип: Снято с эксплуатации

util.debug() удален. Вместо него используйте console.error().

DEP0029: util.error()

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.3

Устаревание во время выполнения.

Тип: Снято с эксплуатации

util.error() удален. Вместо него используйте console.error().

DEP0030: SlowBuffer

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

Назначен код устаревания.

v6.0.0

Устаревание только в документации.

Тип: Только в документации

Класс SlowBuffer объявлен устаревшим. Вместо него используйте Buffer.allocUnsafeSlow(size).

DEP0031: ecdh.setPublicKey()

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

Назначен код устаревания.

v5.2.0

Устаревание только в документации.

Тип: Только в документации

Метод ecdh.setPublicKey() объявлен устаревшим, поскольку его наличие в API не приносит пользы.

DEP0032: модуль node:domain

История
Версия Изменения
v6.12.0, v4.8.6

Назначен код устаревания.

v1.4.2

Устаревание только в документации.

Тип: Только в документации

Модуль domain объявлен устаревшим и не должен использоваться.

DEP0033: EventEmitter.listenerCount()

История
Версия Изменения
v6.12.0, v4.8.6

Назначен код устаревания.

v3.2.0

Устаревание только в документации.

Тип: Только в документации

API events.listenerCount(emitter, eventName) объявлен устаревшим. Вместо него используйте emitter.listenerCount(eventName).

DEP0034: fs.exists(path, callback)

История
Версия Изменения
v6.12.0, v4.8.6

Назначен код устаревания.

v1.0.0

Устаревание только в документации.

Тип: Только в документации

API fs.exists(path, callback) объявлен устаревшим. Вместо него используйте fs.stat() или fs.access().

DEP0035: fs.lchmod(path, mode, callback)

История
Версия Изменения
v6.12.0, v4.8.6

Назначен код устаревания.

v0.4.7

Устаревание только в документации.

Тип: Только в документации

API fs.lchmod(path, mode, callback) объявлен устаревшим.

DEP0036: fs.lchmodSync(path, mode)

История
Версия Изменения
v6.12.0, v4.8.6

Назначен код устаревания.

v0.4.7

Устаревание только в документации.

Тип: Только в документации

API fs.lchmodSync(path, mode) объявлен устаревшим.

DEP0037: fs.lchown(path, uid, gid, callback)

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

Устаревание отменено.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.4.7

Устаревание только в документации.

Тип: Устаревание отменено

API fs.lchown(path, uid, gid, callback) был объявлен устаревшим. Устаревание отменили, поскольку необходимые вспомогательные API были добавлены в libuv.

DEP0038: fs.lchownSync(path, uid, gid)

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

Устаревание отменено.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.4.7

Устаревание только в документации.

Тип: Устаревание отменено

API fs.lchownSync(path, uid, gid) был объявлен устаревшим. Устаревание отменили, поскольку необходимые вспомогательные API были добавлены в libuv.

DEP0039: require.extensions

История
Версия Изменения
v6.12.0, v4.8.6

Назначен код устаревания.

v0.10.6

Устаревание только в документации.

Тип: Только в документации

Свойство require.extensions объявлено устаревшим.

DEP0040: модуль node:punycode

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

Устаревание во время выполнения.

v16.6.0

Добавлена поддержка --pending-deprecation.

v7.0.0

Устаревание только в документации.

Тип: Среда выполнения

Модуль punycode объявлен устаревшим. Вместо него используйте альтернативную реализацию из пользовательского пространства.

DEP0041: переменная окружения NODE_REPL_HISTORY_FILE

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v3.0.0

Устаревание только в документации.

Тип: Снято с эксплуатации

Переменная окружения NODE_REPL_HISTORY_FILE удалена. Вместо нее используйте NODE_REPL_HISTORY.

DEP0042: tls.CryptoStream

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

Снято с эксплуатации.

v6.12.0, v4.8.6

Назначен код устаревания.

v0.11.3

Устаревание только в документации.

Тип: Снято с эксплуатации

Класс tls.CryptoStream удален. Вместо него используйте tls.TLSSocket.

DEP0043: tls.SecurePair

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

Устаревание во время выполнения.

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание только в документации.

v0.11.15

Устаревание отменено.

v0.11.3

Устаревание во время выполнения.

Тип: только документация

Класс tls.SecurePair устарел. Вместо него используйте tls.TLSSocket.

DEP0044: util.isArray()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isArray() устарел. Вместо него используйте Array.isArray().

DEP0045: util.isBoolean()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isBoolean() устарел. Вместо него используйте typeof arg === 'boolean'.

DEP0046: util.isBuffer()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isBuffer() устарел. Вместо него используйте Buffer.isBuffer().

DEP0047: util.isDate()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isDate() устарел. Вместо него используйте arg instanceof Date.

DEP0048: util.isError()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isError() устарел. Вместо него используйте Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error.

DEP0049: util.isFunction()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isFunction() устарел. Вместо него используйте typeof arg === 'function'.

DEP0050: util.isNull()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isNull() устарел. Вместо него используйте arg === null.

DEP0051: util.isNullOrUndefined()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isNullOrUndefined() устарел. Вместо него используйте arg === null || arg === undefined.

DEP0052: util.isNumber()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isNumber() устарел. Вместо него используйте typeof arg === 'number'.

DEP0053: util.isObject()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isObject() устарел. Вместо него используйте arg && typeof arg === 'object'.

DEP0054: util.isPrimitive()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isPrimitive() устарел. Вместо него используйте arg === null || (typeof arg !=='object' && typeof arg !== 'function').

DEP0055: util.isRegExp()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isRegExp() устарел. Вместо него используйте arg instanceof RegExp.

DEP0056: util.isString()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isString() устарел. Вместо него используйте typeof arg === 'string'.

DEP0057: util.isSymbol()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isSymbol() устарел. Вместо него используйте typeof arg === 'symbol'.

DEP0058: util.isUndefined()

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

Устаревание во время выполнения.

v6.12.0, v4.8.6

Назначен код устаревания.

v4.0.0, v3.3.1

Устаревание только в документации.

Тип: во время выполнения

API util.isUndefined() устарел. Вместо него используйте arg === undefined.

DEP0059: util.log()

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

Устаревание во время выполнения.

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание только в документации.

Тип: во время выполнения

API util.log() устарел, поскольку это неподдерживаемый устаревший API, который случайно стал доступен пользовательскому коду. В зависимости от ваших потребностей рассмотрите следующие альтернативы:

  • Сторонние библиотеки для ведения журналов

  • Используйте console.log(new Date().toLocaleString(), message)

Выбрав одну из этих альтернатив, вы сможете отказаться от util.log() и подобрать стратегию ведения журналов, соответствующую конкретным требованиям и сложности вашего приложения.

DEP0060: util._extend()

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

Устаревание во время выполнения.

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание только в документации.

Тип: во время выполнения

API util._extend() устарел, поскольку это неподдерживаемый устаревший API, который случайно стал доступен пользовательскому коду. Вместо него используйте target = Object.assign(target, source).

DEP0061: fs.SyncWriteStream

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

Прекращение поддержки.

v8.0.0

Устаревание во время выполнения.

v7.0.0

Устаревание только в документации.

Тип: прекращение поддержки

Класс fs.SyncWriteStream никогда не предназначался для публичного использования и был удален. Альтернативного API нет. Используйте альтернативу из пользовательского кода.

DEP0062: node --debug

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

Прекращение поддержки.

v8.0.0

Устаревание во время выполнения.

Тип: прекращение поддержки

--debug активирует устаревший интерфейс отладчика V8, удаленный начиная с V8 5.8. Вместо него используется Inspector, который активируется с помощью --inspect.

DEP0063: ServerResponse.prototype.writeHeader()

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

Устаревание только в документации.

Тип: только документация

API ServerResponse.prototype.writeHeader() модуля node:http устарел. Вместо него используйте ServerResponse.prototype.writeHead().

Метод ServerResponse.prototype.writeHeader() никогда не документировался как официально поддерживаемый API.

DEP0064: tls.createSecurePair()

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

Устаревание во время выполнения.

v6.12.0

Назначен код устаревания.

v6.0.0

Устаревание только в документации.

v0.11.15

Устаревание отменено.

v0.11.3

Устаревание во время выполнения.

Тип: во время выполнения

В документации Node.js 0.11.3 API tls.createSecurePair() был объявлен устаревшим. Вместо него следует использовать tls.Socket.

DEP0065: repl.REPL_MODE_MAGIC и NODE_REPL_MODE=magic

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

Окончание жизненного цикла.

v8.0.0

Устаревание, отмеченное только в документации.

Тип: окончание жизненного цикла

Константа REPL_MODE_MAGIC модуля node:repl, используемая для параметра replMode, удалена. Её поведение полностью совпадало с поведением REPL_MODE_SLOPPY начиная с Node.js 6.0.0, когда была импортирована V8 5.0. Вместо неё используйте REPL_MODE_SLOPPY.

Переменная окружения NODE_REPL_MODE используется для установки базового replMode интерактивного сеанса node. Её значение magic также удалено. Вместо него используйте sloppy.

DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames

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

Устаревание во время выполнения.

v8.0.0

Устаревание, отмеченное только в документации.

Тип: во время выполнения

Свойства OutgoingMessage.prototype._headers и OutgoingMessage.prototype._headerNames модуля node:http устарели. Для работы с исходящими заголовками используйте один из публичных методов (например, OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader()).

Свойства OutgoingMessage.prototype._headers и OutgoingMessage.prototype._headerNames никогда не были документированы как официально поддерживаемые.

DEP0067: OutgoingMessage.prototype._renderHeaders

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

Устаревание, отмеченное только в документации.

Тип: только документация

API OutgoingMessage.prototype._renderHeaders() модуля node:http устарел.

Свойство OutgoingMessage.prototype._renderHeaders никогда не было документировано как официально поддерживаемый API.

DEP0068: node debug

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

Устаревшая команда node debug удалена.

v8.0.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

node debug соответствует устаревшему отладчику CLI, который был заменён отладчиком CLI на основе инспектора V8, доступным через node inspect.

DEP0069: vm.runInDebugContext(string)

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

Окончание жизненного цикла.

v9.0.0

Устаревание во время выполнения.

v8.0.0

Устаревание, отмеченное только в документации.

Тип: окончание жизненного цикла

DebugContext удалён из V8 и недоступен в Node.js 10 и более поздних версиях.

DebugContext был экспериментальным API.

DEP0070: async_hooks.currentId()

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

Окончание жизненного цикла.

v8.2.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

async_hooks.currentId() переименован в async_hooks.executionAsyncId() для ясности.

Это изменение было внесено, когда async_hooks являлся экспериментальным API.

DEP0071: async_hooks.triggerId()

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

Окончание жизненного цикла.

v8.2.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

async_hooks.triggerId() переименован в async_hooks.triggerAsyncId() для ясности.

Это изменение было внесено, когда async_hooks являлся экспериментальным API.

DEP0072: async_hooks.AsyncResource.triggerId()

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

Окончание жизненного цикла.

v8.2.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

async_hooks.AsyncResource.triggerId() переименован в async_hooks.AsyncResource.triggerAsyncId() для ясности.

Это изменение было внесено, когда async_hooks являлся экспериментальным API.

DEP0073: Несколько внутренних свойств net.Server

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

Окончание жизненного цикла.

v9.0.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

Доступ к нескольким внутренним, недокументированным свойствам экземпляров net.Server с неподходящими именами объявлен устаревшим.

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

DEP0074: REPLServer.bufferedCommand

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

Окончание жизненного цикла.

v9.0.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

Свойство REPLServer.bufferedCommand устарело; вместо него следует использовать REPLServer.clearBufferedCommand().

DEP0075: REPLServer.parseREPLKeyword()

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

Окончание жизненного цикла.

v9.0.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

REPLServer.parseREPLKeyword() больше не доступен пользовательскому коду.

DEP0076: tls.parseCertString()

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

Окончание жизненного цикла.

v9.0.0

Устаревание во время выполнения.

v8.6.0

Устаревание, отмеченное только в документации.

Тип: окончание жизненного цикла

tls.parseCertString() была простой вспомогательной функцией для разбора, ошибочно ставшей общедоступной. Она должна была разбирать строки субъекта и издателя сертификата, но никогда не обрабатывала многозначные относительные различительные имена должным образом.

В более ранних версиях этого документа предлагалось использовать querystring.parse() в качестве альтернативы tls.parseCertString(). Однако querystring.parse() также некорректно обрабатывает некоторые субъекты сертификатов и использовать её не следует.

DEP0077: Module._debug()

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

Устаревание во время выполнения.

Тип: во время выполнения

Module._debug() устарел.

Функция Module._debug() никогда не была документирована как официально поддерживаемый API.

DEP0078: REPLServer.turnOffEditorMode()

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

Окончание жизненного цикла.

v9.0.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

REPLServer.turnOffEditorMode() больше не доступен пользовательскому коду.

DEP0079: Пользовательская функция инспекции объектов через .inspect()

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

Окончание жизненного цикла.

v10.0.0

Устаревание во время выполнения.

v8.7.0

Устаревание, отмеченное только в документации.

Тип: окончание жизненного цикла

Использование свойства с именем inspect объекта для указания пользовательской функции инспекции для util.inspect() объявлено устаревшим. Вместо него используйте util.inspect.custom. Для обратной совместимости с Node.js до версии 6.4.0 можно указать оба свойства.

DEP0080: path._makeLong()

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

Устаревание, отмеченное только в документации.

Тип: только документация

Внутренний path._makeLong() не предназначался для публичного использования. Однако он оказался полезен для модулей пользовательского кода. Внутренний API устарел и заменён идентичным публичным методом path.toNamespacedPath().

DEP0081: fs.truncate() с использованием файлового дескриптора

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

Устаревание во время выполнения.

Тип: во время выполнения

Использование fs.truncateSync() fs.truncate() с файловым дескриптором объявлено устаревшим. Для работы с файловыми дескрипторами используйте fs.ftruncate() или fs.ftruncateSync().

DEP0082: REPLServer.prototype.memory()

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

Окончание жизненного цикла.

v9.0.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

REPLServer.prototype.memory() необходима только для внутренних механизмов самого REPLServer. Не используйте эту функцию.

DEP0083: Отключение ECDH путём установки ecdhCurve в значение false

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

Окончание жизненного цикла.

v9.2.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

Для полного отключения ECDH только на сервере параметру ecdhCurve в tls.createSecureContext() и tls.TLSSocket можно было задать значение false. Этот режим был объявлен устаревшим при подготовке к переходу на OpenSSL 1.1.0 и для обеспечения единообразия с клиентом; теперь он не поддерживается. Вместо него используйте параметр ciphers.

DEP0084: подключение встроенных внутренних зависимостей

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

Эта функциональность удалена.

v10.0.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

Начиная с Node.js версий 4.4.0 и 5.2.0, несколько модулей, предназначенных только для внутреннего использования, по ошибке стали доступны пользовательскому коду через require(). Это были следующие модули:

  • v8/tools/codemap
  • v8/tools/consarray
  • v8/tools/csvparser
  • v8/tools/logreader
  • v8/tools/profile_view
  • v8/tools/profile
  • v8/tools/SourceMap
  • v8/tools/splaytree
  • v8/tools/tickprocessor-driver
  • v8/tools/tickprocessor
  • node-inspect/lib/_inspect (начиная с версии 7.6.0)
  • node-inspect/lib/internal/inspect_client (начиная с версии 7.6.0)
  • node-inspect/lib/internal/inspect_repl (начиная с версии 7.6.0)

Модули v8/* не экспортируют ничего и при импорте не в определённом порядке фактически вызывали бы ошибки. Поэтому практически не существует обоснованных причин импортировать их через require().

С другой стороны, node-inspect можно установить локально с помощью менеджера пакетов, поскольку он опубликован в реестре npm под тем же именем. Если это сделать, изменять исходный код не потребуется.

DEP0085: чувствительный API AsyncHooks

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

Окончание жизненного цикла.

v9.4.0, v8.10.0

Устаревание во время выполнения.

Тип: окончание жизненного цикла

Чувствительный API AsyncHooks никогда не был документирован и имел ряд незначительных проблем. Вместо него используйте API AsyncResource. См. https://github.com/nodejs/node/issues/15572.

DEP0086: Удаление runInAsyncIdScope

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

Завершение жизненного цикла.

v9.4.0, v8.10.0

Устаревание во время выполнения.

Тип: Завершение жизненного цикла

runInAsyncIdScope не генерирует событие 'before' или 'after', что может вызвать множество проблем. См. https://github.com/nodejs/node/issues/14328.

DEP0089: require('node:assert')

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

Устаревание отменено.

v9.9.0, v8.13.0

Устаревание только в документации.

Тип: Устаревание отменено

Прямой импорт assert не рекомендован, поскольку предоставляемые функции используют проверки на нестрогое равенство. Устаревание было отменено, так как использование модуля node:assert не запрещается, а объявление об устаревании вызвало путаницу у разработчиков.

DEP0090: Недопустимая длина тега аутентификации GCM

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

Завершение жизненного цикла.

v10.0.0

Устаревание во время выполнения.

Тип: Завершение жизненного цикла

Ранее Node.js поддерживал все длины тегов аутентификации GCM, допустимые в OpenSSL при вызове decipher.setAuthTag(). Начиная с Node.js v11.0.0 разрешены только теги аутентификации длиной 128, 120, 112, 104, 96, 64 и 32 бита. Согласно NIST SP 800-38D, теги аутентификации другой длины недопустимы.

DEP0091: crypto.DEFAULT_ENCODING

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

Завершение жизненного цикла.

v10.0.0

Устаревание во время выполнения.

Тип: Завершение жизненного цикла

Свойство crypto.DEFAULT_ENCODING существовало только для совместимости с выпусками Node.js до версии 0.9.3 и было удалено.

DEP0092: Привязка верхнеуровневого this к module.exports

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

Устаревание только в документации.

Тип: Только в документации

Присваивание свойств верхнеуровневому this в качестве альтернативы module.exports считается устаревшим. Разработчикам следует вместо этого использовать exports или module.exports.

DEP0093: crypto.fips считается устаревшим и заменён

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

Устаревание только в документации.

Тип: Только в документации

Свойство crypto.fips считается устаревшим. Вместо него используйте crypto.setFips() и crypto.getFips().

DEP0094: Использование assert.fail() более чем с одним аргументом

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

Устаревание во время выполнения.

Тип: Во время выполнения

Использование assert.fail() более чем с одним аргументом считается устаревшим. Используйте assert.fail() только с одним аргументом или другой метод модуля node:assert.

DEP0095: timers.enroll()

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

Устаревание во время выполнения.

Тип: Во время выполнения

timers.enroll() считается устаревшим. Вместо него используйте общедоступный и документированный setTimeout() или setInterval().

DEP0096: timers.unenroll()

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

Устаревание во время выполнения.

Тип: Во время выполнения

timers.unenroll() считается устаревшим. Вместо него используйте общедоступный и документированный clearTimeout() или clearInterval().

DEP0097: MakeCallback со свойством domain

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

Устаревание во время выполнения.

Тип: Во время выполнения

Пользователям MakeCallback, добавляющим свойство domain для передачи контекста, следует перейти на вариант async_context для MakeCallback или CallbackScope либо на высокоуровневый класс AsyncResource.

DEP0098: Встраиваемые API AsyncHooks AsyncResource.emitBefore и AsyncResource.emitAfter

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

Завершение жизненного цикла.

v10.0.0, v9.6.0, v8.12.0

Устаревание во время выполнения.

Тип: Завершение жизненного цикла

Встраиваемый API AsyncHooks предоставляет методы .emitBefore() и .emitAfter(), которые очень легко использовать неправильно, что может привести к невосстановимым ошибкам.

Вместо этого используйте API asyncResource.runInAsyncScope(), который представляет собой гораздо более безопасную и удобную альтернативу. См. https://github.com/nodejs/node/pull/18513.

DEP0099: API C++ node::MakeCallback, не учитывающие асинхронный контекст

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

Устаревание во время компиляции.

Тип: Во время компиляции

Некоторые версии API node::MakeCallback, доступных нативным дополнениям, считаются устаревшими. Используйте версии API, принимающие параметр async_context.

DEP0100: process.assert()

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

Устаревание во время выполнения.

v0.3.7

Устаревание только в документации.

Тип: Во время выполнения

process.assert() считается устаревшим. Вместо него используйте модуль assert.

Эта функция никогда не была документирована.

DEP0101: --with-lttng

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

Завершение жизненного цикла.

Тип: Завершение жизненного цикла

Параметр времени компиляции --with-lttng удалён.

DEP0102: Использование noAssert в операциях Buffer#(read|write)

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

Завершение жизненного цикла.

Тип: Завершение жизненного цикла

Аргумент noAssert больше не выполняет никаких функций. Все входные данные проверяются независимо от значения noAssert. Пропуск проверки может привести к труднообнаружимым ошибкам и сбоям.

DEP0103: Проверки типов process.binding('util').is[...]

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

Заменено на DEP0111.

v10.0.0

Устаревание только в документации.

Тип: Только в документации (поддерживает --pending-deprecation)

В целом следует избегать использования process.binding(). В частности, методы проверки типов можно заменить на util.types.

Это устаревание было заменено устареванием API process.binding() (DEP0111).

DEP0104: Приведение process.env к строке

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

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: Только в документации (поддерживает --pending-deprecation)

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

DEP0105: decipher.finaltol

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

Завершение жизненного цикла.

v10.0.0

Устаревание во время выполнения.

Тип: Завершение жизненного цикла

decipher.finaltol() никогда не был документирован и являлся псевдонимом decipher.final(). Этот API удалён; рекомендуется вместо него использовать decipher.final().

DEP0106: crypto.createCipher и crypto.createDecipher

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

Завершение жизненного цикла.

v11.0.0

Устаревание во время выполнения.

v10.0.0

Устаревание только в документации.

Тип: Завершение жизненного цикла

crypto.createCipher() и crypto.createDecipher() удалены, так как используют слабую функцию получения ключа (MD5 без соли) и статические векторы инициализации. Рекомендуется получать ключ с помощью crypto.pbkdf2() или crypto.scrypt() со случайными солями, а для создания объектов Cipher и Decipher соответственно использовать crypto.createCipheriv() и crypto.createDecipheriv().

DEP0107: tls.convertNPNProtocols()

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

Завершение жизненного цикла.

v10.0.0

Устаревание во время выполнения.

Тип: Завершение жизненного цикла

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

DEP0108: zlib.bytesRead

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

Устаревание во время выполнения.

v10.0.0

Устаревание только в документации.

Тип: Во время выполнения

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

DEP0109: поддержка http, https и tls для недопустимых URL-адресов

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

Снято с поддержки.

v11.0.0

Устарело во время выполнения.

Тип: снято с поддержки

Некоторые URL-адреса, которые ранее поддерживались (хотя и были строго недопустимыми), принимались API http.request(), http.get(), https.request(), https.get() и tls.checkServerIdentity(), поскольку их принимал устаревший API url.parse(). Упомянутые API теперь используют парсер URL WHATWG, который требует строго допустимых URL-адресов. Передача недопустимого URL устарела, и поддержка будет удалена в будущем.

DEP0110: кэшированные данные vm.Script

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

Устарело только в документации.

Тип: только в документации

Параметр produceCachedData устарел. Вместо него используйте script.createCachedData().

DEP0111: process.binding()

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

Добавлена поддержка --pending-deprecation.

v10.9.0

Устарело только в документации.

Тип: только в документации (поддерживает --pending-deprecation)

process.binding() предназначен только для использования во внутреннем коде Node.js.

Хотя process.binding() в целом не достиг статуса снятия с поддержки, он недоступен при включенной модели разрешений.

DEP0112: закрытые API dgram

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

Устарело во время выполнения.

Тип: во время выполнения

Ранее модуль node:dgram содержал несколько API, которые никогда не предназначались для использования за пределами ядра Node.js: Socket.prototype._handle, Socket.prototype._receiving, Socket.prototype._bindState, Socket.prototype._queue, Socket.prototype._reuseAddr, Socket.prototype._healthCheck(), Socket.prototype._stopReceiving() и dgram._createSocketHandle().

DEP0113: Cipher.setAuthTag(), Decipher.getAuthTag()

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

Снято с поддержки.

v11.0.0

Устарело во время выполнения.

Тип: снято с поддержки

Cipher.setAuthTag() и Decipher.getAuthTag() больше недоступны. Они никогда не были задокументированы и при вызове выбрасывали исключение.

DEP0114: crypto._toBuf()

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

Снято с поддержки.

v11.0.0

Устарело во время выполнения.

Тип: снято с поддержки

Функция crypto._toBuf() не предназначалась для использования модулями за пределами ядра Node.js и была удалена.

DEP0115: crypto.prng(), crypto.pseudoRandomBytes(), crypto.rng()

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

Устарело только в документации, с поддержкой --pending-deprecation.

Тип: только в документации (поддерживает --pending-deprecation)

В последних версиях Node.js между crypto.randomBytes() и crypto.pseudoRandomBytes() нет разницы. Последнее устаревает вместе с недокументированными псевдонимами crypto.prng() и crypto.rng() в пользу crypto.randomBytes() и может быть удалено в одном из будущих выпусков.

DEP0116: устаревший API URL

История
Версия Изменения
v19.0.0, v18.13.0

`url.parse()` снова устарел в DEP0169.

v15.13.0, v14.17.0

Статус устаревания отменен. Статус изменен на «Устаревший».

v11.0.0

Устарело только в документации.

Тип: статус устаревания отменен

Устаревший API URL объявлен устаревшим. К нему относятся url.format(), url.parse(), url.resolve() и устаревший urlObject. Вместо него используйте API URL WHATWG.

DEP0117: собственные дескрипторы криптографии

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

Снято с поддержки.

v11.0.0

Устарело во время выполнения.

Тип: снято с поддержки

В предыдущих версиях Node.js дескрипторы внутренних собственных объектов предоставлялись через свойство _handle классов Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign и Verify. Свойство _handle было удалено, поскольку неправильное использование собственного объекта может привести к аварийному завершению приложения.

DEP0118: поддержка dns.lookup() при ложном имени хоста

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

Устарело во время выполнения.

Тип: во время выполнения

В предыдущих версиях Node.js поддерживался вызов dns.lookup() с ложным именем хоста, например dns.lookup(false), ради обратной совместимости. Такое поведение не задокументировано и, как считается, не используется в реальных приложениях. В будущих версиях Node.js это будет приводить к ошибке.

DEP0119: закрытый API process.binding('uv').errname()

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

Устарело только в документации, с поддержкой --pending-deprecation.

Тип: только в документации (поддерживает --pending-deprecation)

process.binding('uv').errname() устарел. Вместо него используйте util.getSystemErrorName().

DEP0120: поддержка счетчиков производительности Windows

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

Снято с поддержки.

v11.0.0

Устарело во время выполнения.

Тип: снято с поддержки

Поддержка счетчиков производительности Windows удалена из Node.js. Недокументированные функции COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST() и COUNTER_HTTP_CLIENT_RESPONSE() объявлены устаревшими.

DEP0121: net._setSimultaneousAccepts()

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

Устарело во время выполнения.

Тип: во время выполнения

Недокументированная функция net._setSimultaneousAccepts() изначально предназначалась для отладки и настройки производительности при использовании модулей node:child_process и node:cluster в Windows. Эта функция обычно не полезна и удаляется. Обсуждение доступно здесь: https://github.com/nodejs/node/issues/18391

DEP0122: tls Server.prototype.setOptions()

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

Устарело во время выполнения.

Тип: во время выполнения

Вместо него используйте Server.prototype.setSecureContext().

DEP0123: указание IP-адреса в качестве имени сервера TLS

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

Устарело во время выполнения.

Тип: во время выполнения

Указание IP-адреса в качестве имени сервера TLS не разрешено стандартом RFC 6066. В будущей версии это значение будет игнорироваться.

DEP0124: использование REPLServer.rli

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

Снято с поддержки.

v12.0.0

Устарело во время выполнения.

Тип: снято с поддержки

Это свойство является ссылкой на сам экземпляр.

DEP0125: require('node:_stream_wrap')

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

Устарело во время выполнения.

Тип: во время выполнения

Модуль node:_stream_wrap объявлен устаревшим.

DEP0126: timers.active()

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

Устарело во время выполнения.

Тип: во время выполнения

Ранее недокументированный timers.active() объявлен устаревшим. Вместо него используйте общедоступный документированный timeout.refresh(). Если необходимо повторно активировать тайм-аут, можно использовать timeout.ref() без потери производительности начиная с Node.js 10.

DEP0127: timers._unrefActive()

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

Устарело во время выполнения.

Тип: во время выполнения

Ранее недокументированный и «закрытый» timers._unrefActive() объявлен устаревшим. Вместо него используйте общедоступный документированный timeout.refresh(). Если необходимо отменить ссылку на тайм-аут, можно использовать timeout.unref() без потери производительности начиная с Node.js 10.

DEP0128: модули с недопустимой записью main и файлом index.js

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

Устарело во время выполнения.

v12.0.0

Только в документации.

Тип: во время выполнения

Модули с недопустимой записью main (например, ./does-not-exist.js), в каталоге верхнего уровня которых также есть файл index.js, будут разрешать файл index.js. Это поведение объявлено устаревшим и в будущих версиях Node.js будет приводить к ошибке.

DEP0129: ChildProcess._channel

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

Устарело во время выполнения.

v11.14.0

Только в документации.

Тип: во время выполнения

Свойство _channel объектов дочерних процессов, возвращаемых функцией spawn() и подобными функциями, не предназначено для публичного использования. Вместо него используйте ChildProcess.channel.

DEP0130: Module.createRequireFromPath()

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

Снято с поддержки.

v13.0.0

Устарело во время выполнения.

v12.2.0

Только в документации.

Тип: снято с поддержки

Вместо него используйте module.createRequire().

DEP0131: Устаревший HTTP-парсер

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

Эта функция удалена.

v12.22.0

Устаревание во время выполнения.

v12.3.0

Изменение только в документации.

Тип: Конец срока службы

Устаревший HTTP-парсер, использовавшийся по умолчанию в версиях Node.js до 12.0.0, объявлен устаревшим и удалён в v13.0.0. До v13.0.0 для возврата к использованию устаревшего парсера можно было использовать флаг командной строки --http-parser=legacy.

DEP0132: worker.terminate() с обратным вызовом

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

Устаревание во время выполнения.

Тип: Среда выполнения

Передача обратного вызова в worker.terminate() объявлена устаревшей. Вместо этого используйте возвращаемый объект Promise или слушатель события 'exit' рабочего потока.

DEP0133: http connection

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

Устаревание только в документации.

Тип: Только документация

Предпочтительно использовать response.socket вместо response.connection, а request.socket вместо request.connection.

DEP0134: process._tickCallback

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

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: Только документация (поддерживается --pending-deprecation)

Свойство process._tickCallback никогда не документировалось как официально поддерживаемый API.

DEP0135: WriteStream.open() и ReadStream.open() являются внутренними

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

Устаревание во время выполнения.

Тип: Среда выполнения

WriteStream.open() и ReadStream.open() — недокументированные внутренние API, использование которых в пользовательском коде не имеет смысла. Файловые потоки всегда следует открывать с помощью соответствующих фабричных методов fs.createWriteStream() и fs.createReadStream()) или передавать файловый дескриптор в параметрах.

DEP0136: http finished

История
Версия Изменения
v13.4.0, v12.16.0

Устаревание только в документации.

Тип: Только документация

response.finished показывает, был ли вызван response.end(), а не было ли отправлено событие 'finish' и сброшены ли базовые данные.

Чтобы избежать неоднозначности, вместо этого используйте соответственно response.writableFinished или response.writableEnded.

Для сохранения существующего поведения response.finished следует заменить на response.writableEnded.

DEP0137: Закрытие fs.FileHandle при сборке мусора

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

Устаревание во время выполнения.

Тип: Среда выполнения

Разрешение закрывать объект fs.FileHandle при сборке мусора объявлено устаревшим. В будущем это может привести к выбрасыванию ошибки, которая завершит процесс.

Пожалуйста, убедитесь, что все объекты fs.FileHandle явно закрываются с помощью FileHandle.prototype.close(), когда fs.FileHandle больше не нужен:

const fsPromises = require('node:fs').promises;
async function openAndClose() {
  let filehandle;
  try {
    filehandle = await fsPromises.open('thefile.txt', 'r');
  } finally {
    if (filehandle !== undefined)
      await filehandle.close();
  }
} copy

DEP0138: process.mainModule

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

Устаревание только в документации.

Тип: Только документация

process.mainModule доступен только в CommonJS, тогда как глобальный объект process используется также в средах без CommonJS. Его использование в модулях ECMAScript не поддерживается.

Он объявлен устаревшим в пользу require.main, поскольку выполняет ту же задачу и доступен только в среде CommonJS.

DEP0139: process.umask() без аргументов

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

Устаревание только в документации.

Тип: Только документация

Вызов process.umask() без аргумента приводит к двойной записи umask всего процесса. Это создаёт состояние гонки между потоками и представляет потенциальную угрозу безопасности. Безопасного кроссплатформенного альтернативного API не существует.

DEP0140: Используйте request.destroy() вместо request.abort()

История
Версия Изменения
v14.1.0, v13.14.0

Устаревание только в документации.

Тип: Только документация

Используйте request.destroy() вместо request.abort().

DEP0141: repl.inputStream и repl.outputStream

История
Версия Изменения
v14.3.0

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: Только документация (поддерживается --pending-deprecation)

Модуль node:repl экспортировал потоки ввода и вывода дважды. Используйте .input вместо .inputStream и .output вместо .outputStream.

DEP0142: repl._builtinLibs

История
Версия Изменения
v14.3.0

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: Только документация (поддерживается --pending-deprecation)

Модуль node:repl экспортирует свойство _builtinLibs, содержащее массив встроенных модулей. До сих пор он был неполным, поэтому лучше использовать require('node:module').builtinModules.

DEP0143: Transform._transformState

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

Конец срока службы.

v14.5.0

Устаревание во время выполнения.

Тип: Конец срока службы

Transform._transformState будет удалён в будущих версиях, поскольку после упрощения реализации он больше не потребуется.

DEP0144: module.parent

История
Версия Изменения
v14.6.0, v12.19.0

Устаревание только в документации.

Тип: Только документация (поддерживается --pending-deprecation)

Модуль CommonJS может получить доступ к первому модулю, который его загрузил, с помощью module.parent. Эта возможность объявлена устаревшей, поскольку она работает непоследовательно при наличии модулей ECMAScript и неточно отображает граф модулей CommonJS.

Некоторые модули используют её, чтобы проверить, являются ли они точкой входа текущего процесса. Вместо этого рекомендуется сравнивать require.main и module:

if (require.main === module) {
  // Code section that will run only if current file is the entry point.
} copy

Чтобы найти модули CommonJS, которые загрузили текущий модуль, можно использовать require.cache и module.children:

const moduleParents = Object.values(require.cache)
  .filter((m) => m.children.includes(module)); copy

DEP0145: socket.bufferSize

История
Версия Изменения
v14.6.0

Устаревание только в документации.

Тип: Только документация

socket.bufferSize — это просто псевдоним для writable.writableLength.

DEP0146: new crypto.Certificate()

История
Версия Изменения
v14.9.0

Устаревание только в документации.

Тип: Только документация

Конструктор crypto.Certificate() объявлен устаревшим. Вместо него используйте статические методы crypto.Certificate().

DEP0147: fs.rmdir(path, { recursive: true })

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

Устаревание во время выполнения.

v15.0.0

Устаревание во время выполнения для разрешительного поведения.

v14.14.0

Устаревание только в документации.

Тип: Среда выполнения

В будущих версиях Node.js параметр recursive будет игнорироваться для fs.rmdir, fs.rmdirSync и fs.promises.rmdir.

Вместо этого используйте fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) или fs.promises.rm(path, { recursive: true, force: true }).

DEP0148: Сопоставление каталогов в "exports" (завершающий "/")

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

Конец срока службы.

v16.0.0

Устаревание во время выполнения.

v15.1.0

Устаревание во время выполнения для импортов с самоссылками.

v14.13.0

Устаревание только в документации.

Тип: Конец срока службы

Использование завершающего "/" для определения сопоставлений каталогов подпутей в полях экспорта подпутей или импорта подпутей больше не поддерживается. Вместо этого используйте шаблоны подпутей.

DEP0149: http.IncomingMessage#connection

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

Устаревание только в документации.

Тип: Только документация

Предпочтительно использовать message.socket вместо message.connection.

DEP0150: Изменение значения process.config

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

Конец срока службы.

v16.0.0

Устаревание во время выполнения.

Тип: Конец срока службы

Свойство process.config предоставляет доступ к параметрам компиляции Node.js. Однако это свойство изменяемо и поэтому подвержено вмешательству. Возможность изменять его значение будет удалена в будущей версии Node.js.

DEP0151: Поиск главного index-файла и расширений

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

Устаревание во время выполнения.

v15.8.0, v14.18.0

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: Среда выполнения

Ранее поиск index.js и расширений применялся при разрешении главной точки входа import 'pkg', даже при разрешении модулей ES.

После этого устаревания для разрешения всех главных точек входа модулей ES требуется явно указать запись "exports" или "main" с точным расширением файла.

DEP0152: свойства Extension PerformanceEntry

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

Устаревание во время выполнения.

Тип: во время выполнения

Для типов объектов <PerformanceEntry> 'gc', 'http2' и 'http' назначаются дополнительные свойства, предоставляющие дополнительную информацию. Теперь эти свойства доступны в стандартном свойстве detail объекта PerformanceEntry. Существующие методы доступа объявлены устаревшими, и их больше не следует использовать.

DEP0153: преобразование типов параметров dns.lookup и dnsPromises.lookup

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

Снято с эксплуатации.

v17.0.0

Устаревание во время выполнения.

v16.8.0

Устаревание только в документации.

Тип: снято с эксплуатации

Использование ненулевого целочисленного значения для параметра family, ненулевого значения, не являющегося числом, для параметра hints, ненулевого значения, не являющегося логическим, для параметра all или ненулевого значения, не являющегося логическим, для параметра verbatim в dns.lookup() и dnsPromises.lookup() приводит к ошибке ERR_INVALID_ARG_TYPE.

DEP0154: параметры генерации пары ключей RSA-PSS

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

Устаревание во время выполнения.

v16.10.0

Устаревание только в документации.

Тип: во время выполнения

Параметры 'hash' и 'mgf1Hash' заменены на 'hashAlgorithm' и 'mgf1HashAlgorithm'.

DEP0155: завершающие косые черты при разрешении шаблонных спецификаторов

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

Устаревание во время выполнения.

v16.10.0

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: во время выполнения

Переназначение спецификаторов, оканчивающихся на "/", например import 'pkg/x/', объявлено устаревшим для разрешения шаблонов пакетов "exports" и "imports".

DEP0156: свойство .aborted и событие 'abort', 'aborted' в http

История
Версия Изменения
v17.0.0, v16.12.0

Устаревание только в документации.

Тип: только в документации

Вместо этого перейдите на API <Stream>, поскольку http.ClientRequest, http.ServerResponse и http.IncomingMessage основаны на потоках. Проверяйте stream.destroyed вместо свойства .aborted и отслеживайте 'close' вместо события 'abort', 'aborted'.

Свойство .aborted и событие 'abort' полезны только для обнаружения вызовов .abort(). Чтобы досрочно закрыть запрос, используйте .destroy([error]) потока, а затем проверьте свойство .destroyed; событие 'close' должно дать тот же эффект. Получающей стороне также следует проверить значение readable.readableEnded у http.IncomingMessage, чтобы определить, было ли завершение вызвано прерыванием или выполнено штатно.

DEP0157: поддержка thenable в потоках

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

Снято с эксплуатации.

v17.2.0, v16.14.0

Устаревание только в документации.

Тип: снято с эксплуатации

Недокументированной возможностью потоков Node.js была поддержка thenable в методах реализации. Теперь эта возможность объявлена устаревшей. Вместо этого используйте обратные вызовы и не используйте асинхронные функции в методах реализации потоков.

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

const w = new Writable({
  async final(callback) {
    await someOp();
    callback();
  },
}); copy

DEP0158: buffer.slice(start, end)

История
Версия Изменения
v17.5.0, v16.15.0

Устаревание только в документации.

Тип: только в документации

Этот метод объявлен устаревшим, поскольку он несовместим с Uint8Array.prototype.slice(), суперклассом Buffer.

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

DEP0159: ERR_INVALID_CALLBACK

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

Снято с эксплуатации.

Тип: снято с эксплуатации

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

DEP0160: обработчик process.on('multipleResolves', handler)

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

Устаревание во время выполнения.

v17.6.0, v16.15.0

Устаревание только в документации.

Тип: во время выполнения

Это событие объявлено устаревшим, поскольку оно не работало с комбинаторами Promise в V8, что снижало его полезность.

DEP0161: process._getActiveRequests() и process._getActiveHandles()

История
Версия Изменения
v17.6.0, v16.15.0

Устаревание только в документации.

Тип: только в документации

Функции process._getActiveHandles() и process._getActiveRequests() не предназначены для публичного использования и могут быть удалены в будущих выпусках.

Используйте process.getActiveResourcesInfo(), чтобы получить список типов активных ресурсов, а не сами ссылки на них.

DEP0162: преобразование fs.write(), fs.writeFileSync() в строку

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

Снято с эксплуатации.

v18.0.0

Устаревание во время выполнения.

v17.8.0, v16.15.0

Устаревание только в документации.

Тип: снято с эксплуатации

Неявное преобразование объектов, имеющих собственное свойство toString и переданных вторым параметром в fs.write(), fs.writeFile(), fs.appendFile(), fs.writeFileSync() и fs.appendFileSync(), объявлено устаревшим. Преобразуйте их в примитивные строки.

DEP0163: channel.subscribe(onMessage), channel.unsubscribe(onMessage)

История
Версия Изменения
v22.20.0

Устаревание отменено.

v18.7.0, v16.17.0

Устаревание только в документации.

Тип: устаревание отменено

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

DEP0164: преобразование process.exit(code), process.exitCode в целое число

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

Снято с эксплуатации.

v19.0.0

Устаревание во время выполнения.

v18.10.0, v16.18.0

Устаревание только в документации для преобразования process.exitCode в целое число.

v18.7.0, v16.17.0

Устаревание только в документации для преобразования process.exit(code) в целое число.

Тип: снято с эксплуатации

Значения, отличные от undefined, null, целых чисел и строк, представляющих целые числа (например, '1'), объявлены устаревшими в качестве значения параметра code в process.exit() и в качестве значения, присваиваемого process.exitCode.

DEP0165: --trace-atomics-wait

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

Устаревание во время выполнения.

v18.8.0, v16.18.0

Устаревание только в документации.

Тип: во время выполнения

Флаг --trace-atomics-wait объявлен устаревшим, поскольку использует хук V8 SetAtomicsWaitCallback, который будет удален в одном из будущих выпусков V8.

DEP0166: двойные косые черты в целях imports и exports

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

Устаревание во время выполнения.

v18.10.0

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: во время выполнения

Сопоставление целей imports и exports пакетов с путями, содержащими двойную косую черту (символ "/" или "\"), объявлено устаревшим и в будущем выпуске приведет к ошибке проверки разрешения. Это же устаревание распространяется на совпадения с шаблоном, начинающиеся или заканчивающиеся косой чертой.

DEP0167: слабые экземпляры DiffieHellmanGroup (modp1, modp2, modp5)

История
Версия Изменения
v18.10.0, v16.18.0

Устаревание только в документации.

Тип: только в документации

Известные группы MODP modp1, modp2 и modp5 объявлены устаревшими, поскольку не обеспечивают защиту от практически осуществимых атак. Подробности см. в разделе 2.4 RFC 8247.

Эти группы могут быть удалены в будущих версиях Node.js. Приложениям, использующим эти группы, следует рассмотреть возможность перехода на более надежные группы MODP.

DEP0168: необработанное исключение в обратных вызовах Node-API

История
Версия Изменения
v18.3.0, v16.17.0

Устаревание во время выполнения.

Тип: во время выполнения

Неявное подавление неперехваченных исключений в обратных вызовах Node-API теперь объявлено устаревшим.

Установите флаг --force-node-api-uncaught-exceptions-policy, чтобы заставить Node.js генерировать событие 'uncaughtException', если исключение не обработано в обратных вызовах Node-API.

DEP0169: небезопасный url.parse()

История
Версия Изменения
v19.9.0, v18.17.0

Добавлена поддержка --pending-deprecation.

v19.0.0, v18.13.0

Устаревание только в документации.

Тип: только в документации (поддерживает --pending-deprecation)

Поведение url.parse() не стандартизировано и подвержено ошибкам, которые могут иметь последствия для безопасности. Вместо этого используйте API URL WHATWG. Для уязвимостей url.parse() CVE не присваиваются.

DEP0170: Недопустимый порт при использовании url.parse()

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

Устаревание во время выполнения.

v19.2.0, v18.13.0

Устаревание только в документации.

Тип: во время выполнения

url.parse() принимает URL-адреса с портами, не являющимися числами. Такое поведение может привести к подмене имени хоста при неожиданном вводе. В будущих версиях Node.js такие URL-адреса будут вызывать ошибку, как это уже происходит в WHATWG URL API.

DEP0171: Сеттеры для заголовков и трейлеров http.IncomingMessage

История
Версия Изменения
v19.3.0, v18.13.0

Устаревание только в документации.

Тип: только в документации

В будущей версии Node.js свойства message.headers, message.headersDistinct, message.trailers и message.trailersDistinct станут доступны только для чтения.

DEP0172: Свойство asyncResource привязанных функций AsyncResource

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

Устаревание во время выполнения.

Тип: во время выполнения

В будущей версии Node.js свойство asyncResource больше не будет добавляться при привязке функции к AsyncResource.

DEP0173: класс assert.CallTracker

История
Версия Изменения
v20.1.0

Устаревание во время выполнения.

Тип: во время выполнения

В будущей версии Node.js assert.CallTracker будет удалён. Рассмотрите возможность использования альтернатив, например вспомогательной функции mock.

DEP0174: вызов promisify для функции, возвращающей Promise

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

Устаревание во время выполнения.

v20.8.0

Устаревание только в документации.

Тип: во время выполнения

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

DEP0175: util.toUSVString

История
Версия Изменения
v20.8.0

Устаревание только в документации.

Тип: только в документации

API util.toUSVString() устарел. Вместо него используйте String.prototype.toWellFormed.

DEP0176: fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK

История
Версия Изменения
v20.8.0

Устаревание только в документации.

Тип: только в документации

Геттеры F_OK, R_OK, W_OK и X_OK, доступные непосредственно в node:fs, устарели. Вместо этого получайте их из fs.constants или fs.promises.constants.

DEP0177: util.types.isWebAssemblyCompiledModule

История
Версия Изменения
v21.7.0, v20.12.0

Окончание жизненного цикла.

v21.3.0, v20.11.0

Назначен код устаревания.

v14.0.0

Устаревание только в документации.

Тип: окончание жизненного цикла

API util.types.isWebAssemblyCompiledModule удалён. Вместо него используйте value instanceof WebAssembly.Module.

DEP0178: dirent.path

История
Версия Изменения
v21.5.0, v20.12.0, v18.20.0

Устаревание только в документации.

Тип: только в документации

Свойство dirent.path устарело из-за непоследовательности в разных ветках выпуска. Вместо него используйте dirent.parentPath.

DEP0179: Конструктор Hash

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

Устаревание во время выполнения.

v21.5.0, v20.12.0

Устаревание только в документации.

Тип: во время выполнения

Прямой вызов класса Hash с аргументом Hash() или new Hash() устарел, поскольку эти внутренние элементы не предназначены для публичного использования. Для создания экземпляров Hash используйте метод crypto.createHash().

DEP0180: Конструктор fs.Stats

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

Устаревание во время выполнения.

v22.0.0

Устаревание только в документации.

Тип: во время выполнения

Прямой вызов класса fs.Stats с аргументом Stats() или new Stats() устарел, поскольку эти внутренние элементы не предназначены для публичного использования.

DEP0181: Конструктор Hmac

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

Устаревание во время выполнения.

v22.0.0

Устаревание только в документации.

Тип: во время выполнения

Прямой вызов класса Hmac с аргументом Hmac() или new Hmac() устарел, поскольку эти внутренние элементы не предназначены для публичного использования. Для создания экземпляров Hmac используйте метод crypto.createHmac().

DEP0182: Короткие теги аутентификации GCM без явного указания authTagLength

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

Устаревание только в документации.

Тип: только в документации (поддерживает --pending-deprecation)

Приложения, которым нужно использовать теги аутентификации короче стандартной длины, должны задавать для параметра authTagLength функции crypto.createDecipheriv() соответствующую длину.

Для шифров в режиме GCM функция decipher.setAuthTag() принимает теги аутентификации любой допустимой длины (см. DEP0090). Это поведение устаревает, чтобы привести его в большее соответствие с рекомендациями NIST SP 800-38D.

DEP0183: API на основе движков OpenSSL

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

Устаревание только в документации.

Тип: только в документации

В OpenSSL 3 прекращена поддержка пользовательских движков и рекомендуется перейти на новую модель провайдеров. Параметр clientCertEngine для https.request(), tls.createSecureContext() и tls.createServer(); параметры privateKeyEngine и privateKeyIdentifier для tls.createSecureContext(); а также crypto.setEngine() — все они зависят от этой функциональности OpenSSL.

DEP0184: Создание экземпляров классов node:zlib без new

История
Версия Изменения
v22.9.0

Устаревание только в документации.

Тип: только в документации

Создание экземпляров классов без квалификатора new, экспортируемого модулем node:zlib, устарело. Рекомендуется вместо этого использовать квалификатор new. Это относится ко всем классам Zlib, например Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip и Zlib.

DEP0185: Создание экземпляров классов node:repl без new

История
Версия Изменения
v22.9.0

Устаревание только в документации.

Тип: только в документации

Создание экземпляров классов без квалификатора new, экспортируемого модулем node:repl, устарело. Рекомендуется вместо этого использовать квалификатор new. Это относится ко всем классам REPL, в том числе REPLServer и Recoverable.

DEP0187: Передача недопустимых типов аргументов в fs.existsSync

История
Версия Изменения
v22.13.0

Только в документации.

Тип: только в документации

Передача неподдерживаемых типов аргументов устарела; вместо возврата false в будущей версии будет вызываться ошибка.

DEP0188: process.features.ipv6 и process.features.uv

История
Версия Изменения
v22.13.0

Устаревание только в документации.

Тип: только в документации

Эти свойства всегда имеют значение true. Любые проверки на основе этих свойств избыточны.

DEP0189: process.features.tls_*

История
Версия Изменения
v22.13.0

Устаревание только в документации.

Тип: только в документации

Свойства process.features.tls_alpn, process.features.tls_ocsp и process.features.tls_sni устарели, поскольку гарантируется, что их значения совпадают со значением process.features.tls.

DEP0190: Передача args в node:child_process execFile/spawn с параметром shell, равным true

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

Устаревание только в документации.

Тип: только в документации

Если массив args передаётся в child_process.execFile или child_process.spawn с параметром { shell: true }, значения не экранируются, а только разделяются пробелами, что может привести к внедрению команд в оболочку.

DEP0191: repl.builtinModules

История
Версия Изменения
v22.16.0

Устаревание только в документации с поддержкой --pending-deprecation.

Тип: только в документации (поддерживает --pending-deprecation)

Модуль node:repl экспортирует свойство builtinModules, содержащее массив встроенных модулей. Этот список был неполным и совпадал с уже устаревшим свойством repl._builtinLibs (DEP0142); вместо этого рекомендуется использовать require('node:module').builtinModules.

DEP0192: require('node:_tls_common') и require('node:_tls_wrap')

История
Версия Изменения
v22.17.0

Устаревание, отражённое только в документации.

Тип: только документация

Модули node:_tls_common и node:_tls_wrap объявлены устаревшими, поскольку их следует считать внутренней реализацией Node.js, а не общедоступным API; вместо них используйте node:tls.

DEP0193: require('node:_stream_*')

История
Версия Изменения
v22.17.0

Устаревание, отражённое только в документации.

Тип: только документация

Модули node:_stream_duplex, node:_stream_passthrough, node:_stream_readable, node:_stream_transform, node:_stream_wrap и node:_stream_writable объявлены устаревшими, поскольку их следует считать внутренней реализацией Node.js, а не общедоступным API; вместо них используйте node:stream.

DEP0194: передача приоритетов HTTP/2

История
Версия Изменения
v22.17.0

Устаревание, отражённое только в документации.

Тип: только документация

Поддержка передачи приоритетов признана устаревшей в RFC 9113 и будет удалена в будущих версиях Node.js.

DEP0195: создание экземпляров классов node:http без new

История
Версия Изменения
v22.17.0

Устаревание, отражённое только в документации.

Тип: только документация

Создание экземпляров классов без квалификатора new, экспортируемого модулем node:http, объявлено устаревшим. Рекомендуется использовать вместо него квалификатор new. Это относится ко всем классам HTTP, например OutgoingMessage, IncomingMessage, ServerResponse и ClientRequest.

DEP0196: вызов функций node:child_process с параметром options.shell, заданным пустой строкой

История
Версия Изменения
v22.17.0

Устаревание, отражённое только в документации.

Тип: только документация

Вызов функций создания процессов с параметром { shell: '' } почти наверняка является непреднамеренным и может привести к аномальному поведению.

Чтобы заставить child_process.execFile или child_process.spawn запускать оболочку по умолчанию, используйте { shell: true }. Если оболочку запускать не нужно (поведение по умолчанию), опустите параметр shell или задайте ему значение false либо nullish-значение.

Чтобы заставить child_process.exec запускать оболочку по умолчанию, опустите параметр shell или задайте ему nullish-значение. Если оболочку запускать не нужно, используйте вместо этого child_process.execFile.

DEP0198: создание дайджестов SHAKE-128 и SHAKE-256 без явного указания options.outputLength

История
Версия Изменения
v22.18.0

Устаревание, отражённое только в документации, с поддержкой --pending-deprecation.

Тип: только документация (поддерживается --pending-deprecation)

Создание дайджестов SHAKE-128 и SHAKE-256 без явного указания options.outputLength объявлено устаревшим.

DEP0199: require('node:_http_*')

История
Версия Изменения
v22.19.0

Устаревание, отражённое только в документации.

Тип: только документация

Модули node:_http_agent, node:_http_client, node:_http_common, node:_http_incoming, node:_http_outgoing и node:_http_server объявлены устаревшими, поскольку их следует считать внутренней реализацией Node.js, а не общедоступным API; вместо них используйте node:http.

© 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-v22.x/docs/api/deprecations.html

Spec-Zone.ru

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