Spec-Zone.ru › Node.js 20 LTS

Устаревшие 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() вместо него.

DEP0002: require('_linklist')

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

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

v6.12.0

Присвоен код устаревания.

v5.0.0

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

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

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

DEP0003: _writableState.buffer

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.15

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

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

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

DEP0004: CryptoStream.prototype.readyState

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.4.0

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

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

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

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

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

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

v6.12.0

Присвоен код устаревания.

v6.0.0

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

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

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

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

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

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

DEP0006: child_process options.customFds

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.14

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

v0.5.10

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

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

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

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

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

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

v7.0.0

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

v6.12.0

Присвоен код устаревания.

v6.0.0

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

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

В более ранней версии 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.0

Конец жизненного цикла (для digest === null).

v11.0.0

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

v8.0.0

Конец жизненного цикла (для digest === undefined).

v6.12.0

Присвоен код устаревания.

v6.0.0

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

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

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

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

Однако теперь передача undefined или null вызовет исключение TypeError.

DEP0010: crypto.createCredentials

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.13

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

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

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

DEP0011: crypto.Credentials

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.13

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

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

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

DEP0012: Domain.dispose

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.7

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

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

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

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

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

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

v7.0.0

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

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

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

DEP0014: fs.read интерфейс legacy String

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

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

v6.0.0

Отключение в среде выполнения.

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.1.96

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

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

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

DEP0015: fs.readSync интерфейс legacy String

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

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

v6.0.0

Отключение в среде выполнения.

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.1.96

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

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

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

DEP0016: GLOBAL/root

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

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

v6.12.0

Присвоен код устаревания.

v6.0.0

Отключение в среде выполнения.

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

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

DEP0017: Intl.v8BreakIterator

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

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

v7.0.0

Отключение в среде выполнения.

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

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

DEP0018: Необработанные отклонения обещаний

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

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

v7.0.0

Отключение в среде выполнения.

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

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

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

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v1.8.1

Отключение в среде выполнения.

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

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

DEP0020: Server.connections

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

Server.connections удален.

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.9.7

Отключение в среде выполнения.

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

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

DEP0021: Server.listenFD

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.7.12

Отключение в среде выполнения.

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

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

DEP0022: os.tmpDir()

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

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

v7.0.0

Отключение в среде выполнения.

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

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

DEP0023: os.getNetworkInterfaces()

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.6.0

Отключение в среде выполнения.

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

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

DEP0024: REPLServer.prototype.convertToContext()

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

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

v7.0.0

Отключение в среде выполнения.

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

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

DEP0025: require('node:sys')

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

Присвоен код устаревания.

v1.0.0

Отключение в среде выполнения.

Тип: Временное

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

DEP0026: util.print()

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.3

Отключение в среде выполнения.

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

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

DEP0027: util.puts()

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.3

Отключение в среде выполнения.

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

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

DEP0028: util.debug()

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.3

Отключение в среде выполнения.

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

util.debug() был удален. Используйте console.error() вместо него.

DEP0029: util.error()

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.11.3

Отключение в среде выполнения.

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

util.error() был удален. Используйте console.error() вместо него.

DEP0030: SlowBuffer

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

Присвоен код устаревания.

v6.0.0

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

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

Класс SlowBuffer устарел. Используйте Buffer.allocUnsafeSlow(size) вместо него.

DEP0031: ecdh.setPublicKey()

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

Присвоен код устаревания.

v5.2.0

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

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

Метод ecdh.setPublicKey() теперь устарел, так как его включение в API не полезно.

DEP0032: node:domain модуль

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

Присвоен код устаревания.

v1.4.2

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

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

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

DEP0033: EventEmitter.listenerCount()

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

Присвоен код устаревания.

v3.2.0

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

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

API events.listenerCount(emitter, eventName) устарел. Пожалуйста, используйте emitter.listenerCount(eventName) вместо него.

DEP0034: fs.exists(path, callback)

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

Присвоен код устаревания.

v1.0.0

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

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

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

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

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

Присвоен код устаревания.

v0.4.7

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

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

API fs.lchmod(path, mode, callback) устарел.

DEP0036: fs.lchmodSync(path, mode)

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

Присвоен код устаревания.

v0.4.7

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

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

API fs.lchmodSync(path, mode) устарел.

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

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.4.7

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

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

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

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

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

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

v6.12.0, v4.8.6

Присвоен код устаревания.

v0.4.7

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

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

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

DEP0039: require.extensions

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

Присвоен код устаревания.

v0.10.6

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

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

Свойство require.extensions устарело.

DEP0040: node:punycode модуль

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

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

v7.0.0

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

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

Модуль 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()

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

Присвоен код устаревания.

v4.0.0, v3.3.1

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

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

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

DEP0045: util.isBoolean()

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

Присвоен код устаревания.

v4.0.0, v3.3.1

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

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

API util.isBoolean() устарел.

DEP0046: util.isBuffer()

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

Присвоен код устаревания.

v4.0.0, v3.3.1

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

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

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

DEP0047: util.isDate()

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

Присвоен код устаревания.

v4.0.0, v3.3.1

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

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

API util.isDate() устарел.

DEP0048: util.isError()

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

Присвоен код устаревания.

v4.0.0, v3.3.1

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

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

API util.isError() устарел.

DEP0049: util.isFunction()

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

Присвоен код устаревания.

v4.0.0, v3.3.1

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

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

API util.isFunction() устарел.

DEP0050: util.isNull()

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

Присвоен код устаревания.

v4.0.0, v3.3.1

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

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

API util.isNull() устарел.

DEP0051: util.isNullOrUndefined()

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

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

v4.0.0, v3.3.1

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

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

API util.isNullOrUndefined() устарело.

DEP0052: util.isNumber()

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

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

v4.0.0, v3.3.1

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

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

API util.isNumber() устарело.

DEP0053: util.isObject()

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

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

v4.0.0, v3.3.1

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

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

API util.isObject() устарело.

DEP0054: util.isPrimitive()

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

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

v4.0.0, v3.3.1

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

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

API util.isPrimitive() устарело.

DEP0055: util.isRegExp()

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

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

v4.0.0, v3.3.1

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

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

API util.isRegExp() устарело.

DEP0056: util.isString()

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

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

v4.0.0, v3.3.1

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

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

API util.isString() устарело.

DEP0057: util.isSymbol()

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

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

v4.0.0, v3.3.1

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

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

API util.isSymbol() устарело.

DEP0058: util.isUndefined()

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

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

v4.0.0, v3.3.1

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

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

API util.isUndefined() устарело.

DEP0059: util.log()

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

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

v6.0.0

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

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

API util.log() устарело.

DEP0060: util._extend()

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

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

v6.0.0

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

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

API util._extend() устарело.

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 модуля node:http ServerResponse.prototype.writeHeader() устарело. Пожалуйста, используйте 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

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

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

Постоянная node:repl модуля REPL_MODE_MAGIC, используемая для опции 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

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

Тип: Выполнение

Свойства node:http модуля OutgoingMessage.prototype._headers и OutgoingMessage.prototype._headerNames устарели. Используйте один из публичных методов (например, 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 модуля node:http OutgoingMessage.prototype._renderHeaders() устарело.

Свойство 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() был тривиальным вспомогательным средством парсинга, которое было сделано общедоступным по ошибке. Хотя оно должно было анализировать строки темы и издателя сертификата, оно никогда не обрабатывало правильно многозначные относительные имена Distinguished Names.

В более ранних версиях этого документа предлагалось использовать 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.

END_OF_DOCUMENT_MARKER

DEP0089: require('node:assert')

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

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

v9.9.0, v8.13.0

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

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

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

DEP0090: Некорректные длины аутентификационных тегов GCM

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

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

v10.0.0

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

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

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

DEP0091: crypto.DEFAULT_ENCODING

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

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

v10.0.0

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

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

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

DEP0092: Топ-уровневое this привязано к module.exports

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

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

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

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

DEP0093: crypto.fips устарело и заменено

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

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

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

Свойство crypto.fips устарело. Используйте crypto.setFips() и crypto.getFips() вместо этого.

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

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

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

Тип: Выполнение

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

DEP0095: timers.enroll()

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

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

Тип: Выполнение

timers.enroll() устарело. Используйте вместо этого общедоступную документацию setTimeout() или setInterval().

DEP0096: timers.unenroll()

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

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

Тип: Выполнение

timers.unenroll() устарело. Используйте вместо этого общедоступную документацию clearTimeout() или clearInterval().

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

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

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

Тип: Выполнение

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

DEP0098: AsyncHooks embedder AsyncResource.emitBefore и .emitBefore() API

История
Версия Изменения
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: Async context-независимые node::MakeCallback C++ API

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

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

Тип: На этапе компиляции

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

DEP0100: process.assert()

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

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

v0.3.7

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

Тип: Выполнение

process.assert() устарело. Используйте модуль assert вместо этого.

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

DEP0101: --with-lttng

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

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

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

Опция компиляции --with-lttng была удалена.

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

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

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

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

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

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

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

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

v10.0.0

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

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

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

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

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

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

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

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

При присвоении нестрокового свойства к 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

История
Версия Изменения
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

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

Запрещение в ходе выполнения.

v10.0.0

Запрещение только в документации.

Тип: Выполнение

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

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

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

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

v11.0.0

Запрещение в ходе выполнения.

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

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

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

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

Запрещение только в документации.

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

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

DEP0111: process.binding()

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

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

v10.9.0

Запрещение только в документации.

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

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

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

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

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

Запрещение в ходе выполнения.

Тип: Выполнение

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

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

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

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

v11.0.0

Запрещение в ходе выполнения.

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

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

DEP0114: crypto._toBuf()

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

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

v11.0.0

Запрещение в ходе выполнения.

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

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

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

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

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

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

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

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

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

`url.parse()` устарел еще раз в DEP0169.

v15.13.0, v14.17.0

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

v11.0.0

Запрещение только в документации.

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

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

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: process.binding('uv').errname() закрытый API

История
Версия Изменения
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() устарели.

END_OF_DOCUMENT_MARKER

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 в IP-адрес

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

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

Тип: Процесс выполнения

Установка имени сервера TLS в 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, устарел и был удален в 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

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

Тип: Процесс выполнения

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

DEP0136: http finished

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

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

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

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

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

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

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

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

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

Тип: Процесс выполнения

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

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

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

DEP0138: process.mainModule

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

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

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

process.mainModule — функция, доступная только в CommonJS, в то время как глобальный объект process используется и в средах, не использующих CommonJS. Использование её в ECMAScript-модулях не поддерживается.

Он устарел в пользу require.main, так как выполняет ту же функцию и доступен только в среде CommonJS.

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

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

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

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

Вызов process.umask() без аргумента приводит к тому, что маска umask процесса записывается дважды. Это создаёт гонку между потоками и потенциальную уязвимость безопасности. Нет безопасного кроссплатформенного альтернативного API.

DEP0140: Используйте request.destroy() вместо request.abort()

История
Версия Изменения
v14.1.0, v13.14.0

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

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

Используйте request.destroy() вместо request.abort().

DEP0141: repl.inputStream и repl.outputStream

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

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

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

Модуль node:repl экспортировал входной и выходной потоки дважды. Используйте .input вместо .inputStream и .output вместо .outputStream.

DEP0142: repl._builtinLibs

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

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

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

Модуль 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:

if (require.main === module) {
  // Code section that will run only if current file is the entry point.
} copy

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

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

DEP0145: socket.bufferSize

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

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

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

socket.bufferSize — это просто псевдоним для writable.writableLength.

DEP0146: new crypto.Certificate()

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

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

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

Конструктор crypto.Certificate() устарел. Используйте статические методы crypto.Certificate() вместо него.

DEP0147: fs.rmdir(path, { recursive: true })

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

Устаревший для выполнения.

v15.0.0

Устаревший для выполнения из-за допускающего поведения.

v14.14.0

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

Тип: Устаревший для выполнения

В будущих версиях Node.js опция recursive будет игнорироваться для fs.rmdir, fs.rmdirSync, и fs.promises.rmdir.

Используйте fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) или fs.promises.rm(path, { recursive: true, force: true }) вместо этого.

DEP0148: Сопоставления папок в "exports" (с завершающим "/".)

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

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

v16.0.0

Устаревший для выполнения.

v15.1.0

Устаревший для выполнения для импортов, ссылающихся на себя.

v14.13.0

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

Тип: Устаревший для выполнения

Использование завершающего "/" для определения сопоставлений папок вложенных путей в полях экспорта вложенных путей или импорта вложенных путей устарело. Используйте вложенные шаблоны путей вместо этого.

DEP0149: http.IncomingMessage#connection

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

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

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

Предпочтительнее message.socket вместо message.connection.

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

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

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

v16.0.0

Устаревший для выполнения.

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

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

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

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

Устаревший для выполнения.

v15.8.0, v14.18.0

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

Тип: Устаревший для выполнения

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

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

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

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

Устаревший для выполнения.

Тип: Устаревший для выполнения

Типы объектов <PerformanceEntry> 'gc', 'http2', и 'http' имеют дополнительные присвоенные им свойства, предоставляющие дополнительную информацию. Эти свойства теперь доступны в стандартном свойстве detail объекта PerformanceEntry. Существующие аксессоры устарели и больше не должны использоваться.

DEP0153: dns.lookup и dnsPromises.lookup опции приведение типов

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

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

v17.0.0

Устаревший для выполнения.

v16.8.0

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

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

Использование непустого нецелого значения для опции family, непустого нечислового значения для опции hints, непустого небулевого значения для опции all или непустого небулевого значения для опции verbatim в dns.lookup() и dnsPromises.lookup() вызывает ошибку ERR_INVALID_ARG_TYPE.

DEP0154: Опции RSA-PSS для генерации пары ключей

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

Устаревший для выполнения.

v16.10.0

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

Тип: Устаревший для выполнения

Опции 'hash' и 'mgf1Hash' заменены на 'hashAlgorithm' и 'mgf1HashAlgorithm'.

DEP0155: Косые черты в конце указателей шаблонов при разрешении

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

Отключение в ходе выполнения.

v16.10.0

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

Тип: Отказ во время выполнения

Переназначение указателей, заканчивающихся на "/", таких как import 'pkg/x/', устарело для пакета "exports" и разрешения шаблонов "imports".

DEP0156: Свойство .aborted и событие 'abort', 'aborted' в http

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

Отключение только в документации.

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

Переход к API <Stream> вместо него, так как http.ClientRequest, http.ServerResponse и http.IncomingMessage основаны на потоках. Используйте stream.destroyed вместо свойства .aborted и подписывайтесь на 'close' вместо 'abort', 'aborted' события.

Свойство .aborted и событие 'abort' полезны только для обнаружения вызовов .abort(). Для преждевременного закрытия запроса используйте Stream .destroy([error]), затем проверьте свойство .destroyed и событие 'close', которые должны иметь тот же эффект. Приемная сторона также должна проверить значение readable.readableEnded в http.IncomingMessage, чтобы определить, было ли прерывание или плавное уничтожение.

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

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

Конец срока службы.

v17.2.0, v16.14.0

Отключение только в документации.

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

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

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

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

DEP0158: buffer.slice(start, end)

История
Версия Изменения
v17.5.0, v16.15.0

Отключение только в документации.

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

Этот метод устарел, так как он не совместим с Uint8Array.prototype.slice(), который является суперклассом Buffer.

Используйте buffer.subarray, который выполняет ту же функцию.

DEP0159: ERR_INVALID_CALLBACK

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

Конец срока службы.

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

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

DEP0160: process.on('multipleResolves', handler)

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

Отключение в ходе выполнения.

v17.6.0, v16.15.0

Отключение только в документации.

Тип: Отключение во время выполнения.

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

История
Версия Изменения
v18.8.0, v16.18.0

Отключение только в документации.

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

Флаг --trace-atomics-wait устарел.

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

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

Отключение в ходе выполнения.

v18.10.0

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

Тип: Отказ во время выполнения

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

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

Отключение в ходе выполнения.

Тип: Отказ во время выполнения

Неявное подавление необработанных исключений в обратных вызовах Node-API теперь устарело.

Установите флаг --force-node-api-uncaught-exceptions-policy, чтобы принудительно заставить Node.js генерировать событие 'uncaughtException', если исключение не обрабатывается в обратных вызовах Node-API.

DEP0169: Небезопасный url.parse()

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

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

v19.0.0, v18.13.0

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

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

url.parse() поведение не стандартизировано и подвержено ошибкам, имеющим последствия для безопасности. Используйте вместо этого WHATWG URL API. CVEs не выдаются для уязвимостей url.parse().

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

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

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

v19.2.0, v18.13.0

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

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

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

DEP0171: Свойства для http.IncomingMessage заголовков и трейлеров

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

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

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

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

DEP0172: Свойство asyncResource AsyncResource привязанных функций

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

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

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

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

DEP0173: класс assert.CallTracker

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

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

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

В будущей версии Node.js assert.CallTracker будет удален. Рассмотрите альтернативы, такие как функция-помощник mock.

DEP0174: вызов promisify для функции, возвращающей Promise

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

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

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

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

DEP0175: util.toUSVString

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

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

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

API util.toUSVString() устарело. Используйте String.prototype.toWellFormed вместо него.

DEP0176: fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK

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

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

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

F_OK, R_OK, W_OK и X_OK свойства, непосредственно экспонированные на node:fs, устарели. Получайте их из fs.constants или fs.promises.constants.

DEP0177: util.types.isWebAssemblyCompiledModule

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

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

v20.11.0

Присвоен код устаревания.

v14.0.0

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

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

API util.types.isWebAssemblyCompiledModule удален. Используйте value instanceof WebAssembly.Module вместо него.

DEP0178: dirent.path

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

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

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

dirent.path устарел из-за отсутствия согласованности между версиями. Используйте dirent.parentPath вместо него.

DEP0179: конструктор Hash

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

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

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

Непосредственный вызов класса Hash с Hash() или new Hash() устарел, так как он является внутренней частью и не предназначен для публичного использования. Используйте метод crypto.createHash() для создания экземпляров Hash.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v20.x/docs/api/deprecations.html

Spec-Zone.ru

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