Skip to content

Устаревшие API

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

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

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

  • Только в документации
  • Приложение (только код не из node_modules)
  • Выполнение (весь код)
  • Конец жизни

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

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

Устаревание выполнения для всего кода аналогично устареванию выполнения для кода не из 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().

[История]

ВерсияИзменения
v8.0.0End-of-Life.
v6.12.0Назначен код устаревания.
v5.0.0Устаревание во время выполнения.

Тип: End-of-Life

Модуль _linklist устарел. Пожалуйста, используйте альтернативу пользовательского уровня.

DEP0003: _writableState.buffer

[История]

ВерсияИзменения
v14.0.0End-of-Life.
v6.12.0, v4.8.6Назначен код устаревания.
v0.11.15Устаревание во время выполнения.

Тип: End-of-Life

_writableState.buffer был удален. Используйте _writableState.getBuffer() вместо него.

DEP0004: CryptoStream.prototype.readyState

[История]

ВерсияИзменения
v10.0.0End-of-Life.
v6.12.0, v4.8.6Назначен код устаревания.
v0.4.0Устаревание только в документации.

Тип: End-of-Life

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

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

[История]

ВерсияИзменения
v10.0.0Устаревание во время выполнения.
v6.12.0Назначен код устаревания.
v6.0.0Устаревание только в документации.

Тип: Приложение (только код не в node_modules)

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

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

Без --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Устаревание только в документации.

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

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

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

[История]

ВерсияИзменения
v9.0.0Конец жизненного цикла.
v7.0.0Устаревание во время выполнения.
v6.12.0Назначен код устаревания.
v6.0.0Устаревание только в документации.

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

В более ранней версии кластера 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 без digest

[История]

ВерсияИзменения
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() без указания digest было объявлено устаревшим в Node.js 6.0, поскольку метод по умолчанию использовал нерекомендуемый digest '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.0End-of-Life.
v6.12.0, v4.8.6Назначен код устаревания.
v0.11.13Устаревание во время выполнения.

Тип: End-of-Life

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

DEP0011: crypto.Credentials

[История]

ВерсияИзменения
v11.0.0End-of-Life.
v6.12.0, v4.8.6Назначен код устаревания.
v0.11.13Устаревание во время выполнения.

Тип: End-of-Life

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

DEP0012: Domain.dispose

[История]

ВерсияИзменения
v9.0.0End-of-Life.
v6.12.0, v4.8.6Назначен код устаревания.
v0.11.7Устаревание во время выполнения.

Тип: End-of-Life

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

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

[История]

ВерсияИзменения
v10.0.0End-of-Life.
v7.0.0Устаревание во время выполнения.

Тип: End-of-Life

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

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

[История]

ВерсияИзменения
v8.0.0End-of-Life.
v6.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v0.1.96Устаревание только в документации.

Тип: End-of-Life

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

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

[История]

ВерсияИзменения
v8.0.0End-of-Life.
v6.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v0.1.96Устаревание только в документации.

Тип: End-of-Life

Устаревший строковый интерфейс 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.0Server.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: <номер>}).

DEP0022: os.tmpDir()

[История]

ВерсияИзменения
v14.0.0End-of-Life.
v7.0.0Устаревание во время выполнения.

Тип: End-of-Life

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

DEP0023: os.getNetworkInterfaces()

[История]

ВерсияИзменения
v12.0.0End-of-Life.
v6.12.0, v4.8.6Был присвоен код устаревания.
v0.6.0Устаревание во время выполнения.

Тип: End-of-Life

Метод os.getNetworkInterfaces() устарел. Пожалуйста, используйте метод os.networkInterfaces() вместо него.

DEP0024: REPLServer.prototype.convertToContext()

[История]

ВерсияИзменения
v9.0.0End-of-Life.
v7.0.0Устаревание во время выполнения.

Тип: End-of-Life

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

DEP0025: require('node:sys')

[История]

ВерсияИзменения
v6.12.0, v4.8.6Был присвоен код устаревания.
v1.0.0Устаревание во время выполнения.

Тип: Runtime

Модуль node:sys устарел. Пожалуйста, используйте модуль util вместо него.

DEP0026: util.print()

[История]

ВерсияИзменения
v12.0.0End-of-Life.
v6.12.0, v4.8.6Был присвоен код устаревания.
v0.11.3Устаревание во время выполнения.

Тип: End-of-Life

util.print() был удален. Пожалуйста, используйте console.log() вместо него.

DEP0027: util.puts()

[История]

ВерсияИзменения
v12.0.0End-of-Life.
v6.12.0, v4.8.6Был присвоен код устаревания.
v0.11.3Устаревание во время выполнения.

Тип: End-of-Life

util.puts() был удален. Пожалуйста, используйте console.log() вместо него.

DEP0028: util.debug()

[История]

ВерсияИзменения
v12.0.0End-of-Life.
v6.12.0, v4.8.6Был присвоен код устаревания.
v0.11.3Устаревание во время выполнения.

Тип: End-of-Life

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) был объявлен устаревшим. Устаревание было отменено, поскольку в libuv были добавлены необходимые вспомогательные API.

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

[История]

ВерсияИзменения
v10.6.0Устаревание отменено.
v6.12.0, v4.8.6Назначен код устаревания.
v0.4.7Устаревание только в документации.

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

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

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()

[История]

ВерсияИзменения
v23.0.0Устаревание с окончанием жизненного цикла.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isBoolean() был удален. Пожалуйста, используйте typeof arg === 'boolean' вместо него.

DEP0046: util.isBuffer()

[История]

ВерсияИзменения
v23.0.0Устаревание с окончанием жизненного цикла.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isBuffer() был удален. Пожалуйста, используйте Buffer.isBuffer() вместо него.

DEP0047: util.isDate()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isDate() удален. Пожалуйста, используйте arg instanceof Date вместо него.

DEP0048: util.isError()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
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()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isFunction() удален. Пожалуйста, используйте typeof arg === 'function' вместо него.

DEP0050: util.isNull()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isNull() удален. Пожалуйста, используйте arg === null вместо него.

DEP0051: util.isNullOrUndefined()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
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()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isNumber() удален. Пожалуйста, используйте typeof arg === 'number' вместо него.

DEP0053: util.isObject()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
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()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
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()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isRegExp() удален. Пожалуйста, используйте arg instanceof RegExp вместо него.

DEP0056: util.isString()

[История]

ВерсияИзменения
v23.0.0Прекращение поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

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

API util.isString() удален. Пожалуйста, используйте typeof arg === 'string' вместо него.

DEP0057: util.isSymbol()

[История]

ВерсияИзменения
v23.0.0Устаревание с прекращением поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

Тип: Устаревание с прекращением поддержки

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

DEP0058: util.isUndefined()

[История]

ВерсияИзменения
v23.0.0Устаревание с прекращением поддержки.
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

Тип: Устаревание с прекращением поддержки

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

DEP0059: util.log()

[История]

ВерсияИзменения
v23.0.0Устаревание с прекращением поддержки.
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 и был удален. Альтернативного 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Устаревание во время выполнения.

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

API tls.createSecurePair() был объявлен устаревшим в документации в Node.js 0.11.3. Пользователи должны использовать 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.truncate() fs.truncateSync() с файловым дескриптором устарело. Пожалуйста, используйте 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Устаревание во время выполнения.

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

Опция ecdhCurve для tls.createSecureContext() и tls.TLSSocket могла быть установлена в false, чтобы полностью отключить ECDH только на сервере. Этот режим был объявлен устаревшим в рамках подготовки к переходу на 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 устарел и заменен

[История]

ВерсияИзменения
v23.0.0Устаревание во время выполнения.
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: Встроенные AsyncHooks API 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 node::MakeCallback C++, не учитывающие контекст

[История]

ВерсияИзменения
v10.0.0Устаревание во время компиляции.

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

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

DEP0100: process.assert()

[История]

ВерсияИзменения
v23.0.0Конец срока службы.
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)

При присваивании нестрокового свойства 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() со случайными солями и использовать crypto.createCipheriv() и crypto.createDecipheriv() для получения объектов Cipher и Decipher соответственно.

DEP0107: tls.convertNPNProtocols()

[История]

ВерсияИзменения
v11.0.0Окончание жизненного цикла.
v10.0.0Устаревание во время выполнения.

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

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

DEP0108: zlib.bytesRead

[История]

ВерсияИзменения
v23.0.0Окончание жизненного цикла.
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 теперь используют парсер WHATWG URL, который требует строго допустимых 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: Устаревший URL API

[История]

ВерсияИзменения
v19.0.0, v18.13.0url.parse() снова устарел в DEP0169.
v15.13.0, v14.17.0Устаревание отменено. Статус изменен на "Устаревший".
v11.0.0Устаревание только в документации.

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

Устаревший URL API объявлен устаревшим. Это включает url.format(), url.parse(), url.resolve() и устаревший urlObject. Пожалуйста, используйте WHATWG URL API вместо этого.

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)

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: установка TLS ServerName на IP-адрес

[История]

ВерсияИзменения
v12.0.0Устаревание во время выполнения.

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

Установка TLS ServerName на IP-адрес не разрешена 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, объявлен устаревшим и был удален в версии 13.0.0. До версии 13.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)

Свойство 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 больше не нужен:

js
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()
  }
}

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][]).

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

Модуль node:repl экспортирует свойство _builtinLibs, которое содержит массив встроенных модулей. Он был неполным, поэтому лучше полагаться на require('node:module').builtinModules.

DEP0143: Transform._transformState

[История]

ВерсияИзменения
v14.5.0Устаревание во время выполнения.

Тип: Во время выполнения Transform._transformState будет удален в будущих версиях, где он больше не требуется из-за упрощения реализации.

DEP0144: module.parent

[История]

ВерсияИзменения
v14.6.0, v12.19.0Устаревание только в документации.

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

Модуль CommonJS может получить доступ к первому модулю, который его потребовал, с помощью module.parent. Эта функция устарела, поскольку она не работает согласованно при наличии модулей ECMAScript и поскольку она дает неточное представление о графе модулей CommonJS.

Некоторые модули используют его для проверки того, являются ли они точкой входа текущего процесса. Вместо этого рекомендуется сравнивать require.main и module:

js
if (require.main === module) {
  // Раздел кода, который будет выполняться только в том случае, если текущий файл является точкой входа.
}

При поиске модулей CommonJS, которые потребовали текущий, можно использовать require.cache и module.children:

js
const moduleParents = Object.values(require.cache).filter(m => m.children.includes(module))

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 }) {#dep0147-fsrmdirpath-{-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: Поиск основного индекса и поиск расширений

[История]

ВерсияИзменения
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Устаревание только в документации.

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

Использование не-nullish нецелочисленного значения для опции family, не-nullish нечислового значения для опции hints, не-nullish небулевого значения для опции all или не-nullish небулевого значения для опции 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(). Для досрочного закрытия запроса используйте Stream .destroy([error]), а затем проверьте свойство .destroyed и событие 'close', которые должны иметь тот же эффект. Принимающая сторона также должна проверить значение readable.readableEnded в http.IncomingMessage, чтобы узнать, было ли это прерванное или корректное завершение.

DEP0157: Поддержка thenable в потоках

[История]

ВерсияИзменения
v18.0.0Конец срока службы.
v17.2.0, v16.14.0Устаревание только в документации.

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

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

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

js
const w = new Writable({
  async final(callback) {
    await someOp()
    callback()
  },
})

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Устаревание только в документации.

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

Это событие устарело, потому что оно не работало с комбинаторами промисов 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)

[История]

ВерсияИзменения
v18.7.0, v16.17.0Устаревание только в документации.

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

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

Вместо этого используйте diagnostics_channel.subscribe(name, onMessage) или diagnostics_channel.unsubscribe(name, onMessage), которые делают то же самое.

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

[История]

ВерсияИзменения
v23.0.0End-of-Life.
v22.0.0Устаревание во время выполнения.
v18.8.0, v16.18.0Устаревание только в документации.

Тип: End-of-Life

Флаг --trace-atomics-wait был удален, потому что он использует V8-хук SetAtomicsWaitCallback, который будет удален в будущем выпуске V8.

DEP0166: Двойные слэши в целях импорта и экспорта

[История]

ВерсияИзменения
v19.0.0Устаревание во время выполнения.
v18.10.0Устаревание только в документации с поддержкой --pending-deprecation.

Тип: Runtime

Цели импорта и экспорта пакетов, отображаемые в пути, включающие двойной слэш (из "/" или ""), устарели и будут вызывать ошибку проверки разрешения в будущем выпуске. Это же устаревание также относится к сопоставлениям шаблонов, начинающимся или заканчивающимся слэшем.

DEP0167: Слабые экземпляры DiffieHellmanGroup (modp1, modp2, modp5)

[История]

ВерсияИзменения
v18.10.0, v16.18.0Устаревание только в документации.

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

Известные группы MODP modp1, modp2 и modp5 устарели, поскольку они не защищены от практических атак. Подробности см. в RFC 8247 Раздел 2.4.

Эти группы могут быть удалены в будущих версиях Node.js. Приложения, которые полагаются на эти группы, должны рассмотреть возможность использования более сильных групп MODP.

DEP0168: Необработанное исключение в обратных вызовах Node-API

[История]

ВерсияИзменения
v18.3.0, v16.17.0Устаревание во время выполнения.

Тип: Runtime

Неявное подавление необработанных исключений в обратных вызовах 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() не стандартизировано и подвержено ошибкам, которые имеют последствия для безопасности. Используйте WHATWG URL API вместо него. CVE не выдаются для уязвимостей url.parse().

DEP0170: Недопустимый порт при использовании url.parse()

[История]

ВерсияИзменения
v20.0.0Устаревание во время выполнения.
v19.2.0, v18.13.0Устаревание только в документации.

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

url.parse() принимает URL-адреса с портами, которые не являются числами. Это поведение может привести к подмене имени хоста с неожиданным вводом. Эти URL-адреса будут вызывать ошибку в будущих версиях Node.js, как это уже делает 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 для функции, которая возвращает

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

[История]

ВерсияИзменения
v23.0.0Устаревание во время выполнения.
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() устарел, поскольку является внутренним и не предназначен для публичного использования. Пожалуйста, используйте метод crypto.createHash() для создания экземпляров Hash.

DEP0180: Конструктор fs.Stats

[История]

ВерсияИзменения
v22.0.0Устаревание во время выполнения.
v20.13.0Устаревание только в документации.

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

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

DEP0181: Конструктор Hmac

[История]

ВерсияИзменения
v22.0.0Устаревание во время выполнения.
v20.13.0Устаревание только в документации.

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

Прямой вызов класса Hmac с помощью Hmac() или new Hmac() считается устаревшим, поскольку является внутренней частью и не предназначен для публичного использования. Пожалуйста, используйте метод crypto.createHmac() для создания экземпляров Hmac.

DEP0182: Короткие теги аутентификации GCM без явного authTagLength

[История]

ВерсияИзменения
v23.0.0Устаревание во время выполнения.
v20.13.0Устаревание только в документации.

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

Приложения, которые намереваются использовать теги аутентификации, длина которых короче длины тега аутентификации по умолчанию, должны установить опцию authTagLength функции crypto.createDecipheriv() в соответствующую длину.

Для шифров в режиме GCM функция decipher.setAuthTag() принимает теги аутентификации любой допустимой длины (см. DEP0090). Такое поведение считается устаревшим для лучшего соответствия рекомендациям согласно NIST SP 800-38D.

DEP0183: API на основе движка OpenSSL

[История]

ВерсияИзменения
v22.4.0, v20.16.0Устаревание только в документации.

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

В OpenSSL 3 прекращена поддержка пользовательских движков с рекомендацией перейти на новую модель провайдера. Параметр clientCertEngine для https.request(), tls.createSecureContext() и tls.createServer(); privateKeyEngine и privateKeyIdentifier для tls.createSecureContext(); и crypto.setEngine() — все зависят от этой функциональности OpenSSL.

DEP0184: Создание экземпляров классов node:zlib без new

[История]

ВерсияИзменения
v22.9.0, v20.18.0Устаревание только в документации.

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

Создание экземпляров классов, экспортируемых модулем node:zlib, без квалификатора new является устаревшим. Рекомендуется использовать квалификатор new. Это относится ко всем классам Zlib, таким как Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip и Zlib.

DEP0185: Создание экземпляров классов node:repl без new

[История]

ВерсияИзменения
v22.9.0, v20.18.0Устаревание только в документации.

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

Создание экземпляров классов, экспортируемых модулем node:repl, без квалификатора new является устаревшим. Рекомендуется использовать квалификатор new. Это относится ко всем классам REPL, включая REPLServer и Recoverable.

DEP0187: Передача недопустимых типов аргументов в fs.existsSync

[История]

ВерсияИзменения
v23.4.0Только в документации.

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

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

DEP0188: process.features.ipv6 и process.features.uv

[История]

ВерсияИзменения
v23.4.0Устаревание только в документации.

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

Эти свойства безусловно true. Любые проверки, основанные на этих свойствах, избыточны.

DEP0189: process.features.tls_*

[История]

ВерсияИзменения
v23.4.0Устаревание только в документации.

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

process.features.tls_alpn, process.features.tls_ocsp и process.features.tls_sni устарели, поскольку их значения гарантированно идентичны значению process.features.tls.