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

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

DEP0006: child_process options.customFds

[История]

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

Тип: End-of-Life

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

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

[История]

ВерсияИзменения
v9.0.0End-of-Life.
v7.0.0Устаревание во время выполнения.
v6.12.0Был присвоен код устаревания.
v6.0.0Устаревание только в документации.

Тип: End-of-Life

В более ранней версии Node.js cluster к объекту 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.0End-of-Life (для digest === null).
v11.0.0Устаревание во время выполнения (для digest === null).
v8.0.0End-of-Life (для digest === undefined).
v6.12.0Был присвоен код устаревания.
v6.0.0Устаревание во время выполнения (для digest === undefined).

Тип: End-of-Life

Использование 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Устаревание во время выполнения.

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

Вызов асинхронной функции без обратного вызова вызывает ошибку TypeError в Node.js 10.0.0 и выше. Смотрите 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.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: \<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 module

[История]

ВерсияИзменения
v21.0.0Устаревание во время выполнения.
v16.6.0Добавлена поддержка --pending-deprecation.
v7.0.0Устаревание только в документации.

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

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

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

[История]

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

Тип: End-of-Life

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

DEP0042: tls.CryptoStream

[История]

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

Тип: End-of-Life

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

Тип: Runtime

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

DEP0045: util.isBoolean()

[История]

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

Тип: End-of-Life

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

DEP0046: util.isBuffer()

[История]

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

Тип: End-of-Life

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Прекращение поддержки (End-of-Life).
v22.0.0Устаревание во время выполнения.
v6.12.0, v4.8.6Назначен код устаревания.
v4.0.0, v3.3.1Устаревание только в документации.

Тип: Прекращение поддержки (End-of-Life)

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

DEP0053: util.isObject()

[История]

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

Тип: Прекращение поддержки (End-of-Life)

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

DEP0054: util.isPrimitive()

[История]

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

Тип: Прекращение поддержки (End-of-Life)

API util.isPrimitive() удален. Пожалуйста, используйте arg === null || (typeof arg !=='object' && typeof arg !== 'function') вместо этого.

DEP0055: util.isRegExp()

[История]

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

Тип: Прекращение поддержки (End-of-Life)

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

DEP0056: util.isString()

[История]

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

Тип: Прекращение поддержки (End-of-Life)

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-inspector, доступным через 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: Встраиваемый 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: Асинхронные node::MakeCallback C++ API, не учитывающие контекст

[История]

ВерсияИзменения
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[...] typechecks

[История]

ВерсияИзменения
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Окончание срока службы (End-of-Life).
v10.0.0Устаревание во время выполнения (Runtime deprecation).

Тип: Окончание срока службы (End-of-Life)

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

DEP0106: crypto.createCipher и crypto.createDecipher

[История]

ВерсияИзменения
v22.0.0Окончание срока службы (End-of-Life).
v11.0.0Устаревание во время выполнения (Runtime deprecation).
v10.0.0Устаревание только в документации (Documentation-only deprecation).

Тип: Окончание срока службы (End-of-Life)

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

DEP0107: tls.convertNPNProtocols()

[История]

ВерсияИзменения
v11.0.0Окончание срока службы (End-of-Life).
v10.0.0Устаревание во время выполнения (Runtime deprecation).

Тип: Окончание срока службы (End-of-Life)

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

DEP0108: zlib.bytesRead

[История]

ВерсияИзменения
v23.0.0Окончание срока службы (End-of-Life).
v11.0.0Устаревание во время выполнения (Runtime deprecation).
v10.0.0Устаревание только в документации (Documentation-only deprecation).

Тип: Окончание срока службы (End-of-Life)

Устаревший псевдоним для 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: Native crypto handles

[История]

ВерсияИзменения
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Устаревание во время выполнения.

Тип: Runtime

Пожалуйста, используйте Server.prototype.setSecureContext() вместо этого.

DEP0123: установка TLS ServerName на IP-адрес

[История]

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

Тип: Runtime

Установка TLS ServerName на IP-адрес не разрешена RFC 6066. Это будет проигнорировано в будущей версии.

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

[История]

ВерсияИзменения
v15.0.0Конец жизненного цикла.
v12.0.0Устаревание во время выполнения.

Тип: End-of-Life

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

DEP0125: require('node:_stream_wrap')

[История]

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

Тип: Runtime

Модуль node:_stream_wrap устарел.

DEP0126: timers.active()

[История]

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

Тип: Runtime

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

DEP0127: timers._unrefActive()

[История]

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

Тип: Runtime

Ранее не документированная и "частная" функция timers._unrefActive() устарела. Пожалуйста, используйте публично документированную timeout.refresh() вместо этого. Если необходимо отменить ссылку на тайм-аут, можно использовать timeout.unref() без ущерба для производительности, начиная с Node.js 10.

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

[История]

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

Тип: Runtime

Модули, которые имеют недействительную запись 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)

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

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

[История]

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

Тип: Runtime

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

DEP0136: http finished

[История]

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

Тип: Documentation-only

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

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

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

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

[История]

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

Тип: Runtime

Разрешение закрытия объекта 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) {
  // Code section that will run only if current file is the entry point.
  // Раздел кода, который будет выполняться, только если текущий файл является точкой входа.
}

При поиске модулей 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() constructor устарел. Используйте статические методы 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.0End-of-Life.
v16.0.0Устаревание в рантайме.
v15.1.0Устаревание в рантайме для само-ссылочных импортов.
v14.13.0Устаревание только в документации.

Тип: Runtime

Использование конечного "/" для определения сопоставлений папок подпутей в полях subpath exports или subpath imports считается устаревшим. Вместо этого используйте subpath patterns.

DEP0149: http.IncomingMessage#connection

[История изменений]

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

Тип: Documentation-only.

Предпочитайте message.socket вместо message.connection.

DEP0150: Изменение значения process.config

[История изменений]

ВерсияИзменения
v19.0.0End-of-Life.
v16.0.0Устаревание в рантайме.

Тип: End-of-Life

Свойство process.config предоставляет доступ к настройкам Node.js во время компиляции. Однако свойство является изменяемым и, следовательно, подвержено несанкционированному изменению. Возможность изменения значения будет удалена в будущей версии Node.js.

DEP0151: Поиск основного индекса и поиск расширений

[История изменений]

ВерсияИзменения
v16.0.0Устаревание в рантайме.
v15.8.0, v14.18.0Устаревание только в документации с поддержкой --pending-deprecation.

Тип: Runtime

Ранее поиск index.js и поиск расширений применялись к разрешению основной точки входа import 'pkg', даже при разрешении ES-модулей.

С этим устареванием все разрешения основной точки входа ES-модуля требуют явной "exports" или "main" записи с точным расширением файла.

DEP0152: Свойства расширения PerformanceEntry

[История изменений]

ВерсияИзменения
v16.0.0Устаревание в рантайме.

Тип: Runtime

Типы объектов 'gc', 'http2' и 'http' <PerformanceEntry> имеют дополнительные свойства, которые предоставляют дополнительную информацию. Теперь эти свойства доступны в стандартном свойстве 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.0Конец срока службы.
v22.0.0Устаревание во время выполнения.
v18.8.0, v16.18.0Устаревание только в документации.

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

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

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

[История]

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

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

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

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: Insecure 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: Invalid port when using url.parse()

[История]

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

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

url.parse() принимает URL-адреса с портами, которые не являются числами. Такое поведение может привести к подмене имени хоста с помощью неожиданных входных данных. Эти URL-адреса будут вызывать ошибку в будущих версиях Node.js, как это уже делает WHATWG URL API.

DEP0171: Setters for http.IncomingMessage headers and trailers

[История]

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

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

В будущей версии Node.js message.headers, message.headersDistinct, message.trailers и message.trailersDistinct будут доступны только для чтения.

DEP0172: The asyncResource property of AsyncResource bound functions

[История]

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

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

В будущей версии Node.js свойство asyncResource больше не будет добавляться, когда функция привязана к AsyncResource.

DEP0173: the assert.CallTracker class

[История]

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

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

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

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

[История]

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

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

Создание экземпляров классов без квалификатора new, экспортируемых модулем node:repl, устарело. Рекомендуется использовать квалификатор 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.