Spec-Zone.ru › Node.js

Устаревшие 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 без digest

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

Достигнут конец жизненного цикла (для digest === null).

v11.0.0

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

v8.0.0

Достигнут конец жизненного цикла (для digest === undefined).

v6.12.0

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

v6.0.0

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

Тип: Достигнут конец жизненного цикла

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

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

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

DEP0010: crypto.createCredentials

История
Версия Изменения
v11.0.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 устаревший интерфейс 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 устаревший интерфейс 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 модуль

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

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

v16.6.0

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

v7.0.0

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

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

Модуль punycode устарел. Используйте альтернативу на уровне пользователя.

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

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

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

v6.12.0, v4.8.6

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

v3.0.0

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

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

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

DEP0042: tls.CryptoStream

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

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

v6.12.0, v4.8.6

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

v0.11.3

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

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

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

DEP0043: tls.SecurePair

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

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

v6.12.0

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

v6.0.0

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

v0.11.15

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

v0.11.3

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

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

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

DEP0044: util.isArray()

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

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

v6.12.0, v4.8.6

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

v4.0.0, v3.3.1

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

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

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

DEP0045: util.isBoolean()

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

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

v6.12.0, v4.8.6

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

v4.0.0, v3.3.1

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

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

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

DEP0046: util.isBuffer()

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

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

v6.12.0, v4.8.6

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

v4.0.0, v3.3.1

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

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

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

DEP0047: util.isDate()

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

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

v6.12.0, v4.8.6

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

v4.0.0, v3.3.1

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

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

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

DEP0048: util.isError()

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

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

v6.12.0, v4.8.6

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

v4.0.0, v3.3.1

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

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

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

DEP0049: util.isFunction()

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

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

v6.12.0, v4.8.6

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

v4.0.0, v3.3.1

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

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

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

DEP0050: util.isNull()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0051: util.isNullOrUndefined()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0052: util.isNumber()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0053: util.isObject()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0054: util.isPrimitive()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0055: util.isRegExp()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0056: util.isString()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0057: util.isSymbol()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0058: util.isUndefined()

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

Отмена в ходе выполнения.

v6.12.0, v4.8.6

Присвоено код отмены.

v4.0.0, v3.3.1

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

Тип: В ходе выполнения

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

DEP0059: util.log()

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

Отмена в ходе выполнения.

v6.12.0

Присвоено код отмены.

v6.0.0

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

Тип: В ходе выполнения

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

  • Библиотеки журналирования сторонних разработчиков

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

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

DEP0060: util._extend()

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

Отмена в ходе выполнения.

v6.12.0

Присвоено код отмены.

v6.0.0

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

Тип: В ходе выполнения

API util._extend() устарело, так как это не поддерживаемый API-интерфейс legacy, который был случайно открыт для пользовательского пространства. Пожалуйста, используйте 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 активирует интерфейс отладчика legacy V8, который был удалён начиная с V8 5.8. Вместо него используется Инспектор, который активируется с помощью --inspect.

DEP0063: ServerResponse.prototype.writeHeader()

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

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

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

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

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

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

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

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

DEP0068: node debug

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

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

v8.0.0

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

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

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

DEP0069: vm.runInDebugContext(string)

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

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

v9.0.0

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

v8.0.0

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

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

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

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

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

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

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

DEP0085: API AsyncHooks чувствительных данных

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

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

v9.4.0, v8.10.0

Отклонение в работе.

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

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

DEP0086: Удаление runInAsyncIdScope

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

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

v9.4.0, v8.10.0

Отклонение в работе.

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

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

DEP0089: require('node:assert')

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

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

v9.9.0, v8.13.0

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

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

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

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

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

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

v10.0.0

Отклонение в работе.

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

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

DEP0091: crypto.DEFAULT_ENCODING

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

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

v10.0.0

Отклонение в работе.

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

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

DEP0092: Глобальный this привязан к module.exports

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

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

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

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

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

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

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

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

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

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

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

Отклонение в работе.

Тип: В работе

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

DEP0095: timers.enroll()

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

Отклонение в работе.

Тип: В работе

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

DEP0096: timers.unenroll()

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

Отклонение в работе.

Тип: В работе

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

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

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

Отклонение в работе.

Тип: В работе

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

DEP0098: API AsyncHooks встраиваемого модуля AsyncResource.emitBefore и AsyncResource.emitAfter

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

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

v10.0.0, v9.6.0, v8.12.0

Отклонение в работе.

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

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

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

DEP0099: API node::MakeCallback C++ без поддержки контекста Async

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

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

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

v11.0.0

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

v10.0.0

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

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

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

DEP0107: tls.convertNPNProtocols()

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

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

v10.0.0

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

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

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

DEP0108: zlib.bytesRead

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

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

v10.0.0

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

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

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

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

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

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

v11.0.0

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

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

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

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

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

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

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

Опция produceCachedData устарела. Используйте script.createCachedData() вместо этого.

DEP0111: process.binding()

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

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

v10.9.0

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

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

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

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

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 URL WHATWG вместо него.

DEP0117: Внутренние обработчики криптографии

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

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

v11.0.0

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

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

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

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

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

Отклонение выполнения.

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

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

DEP0119: 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() устарели.

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

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

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

END_OF_DOCUMENT_MARKER

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.

Тип: Постоянное

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

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

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

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

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

Тип: Постоянное

Объекты типов 'gc', 'http2', и 'http' <PerformanceEntry> имеют дополнительные свойства, предоставляющие дополнительную информацию. Эти свойства теперь доступны через стандартное свойство 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

История
Версия Изменения
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 устарели, поскольку они не защищены от практических атак. Подробности см. в 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, v18.17.0

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

v19.0.0, v18.13.0

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

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

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

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

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

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

v19.2.0, v18.13.0

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

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

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

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

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

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

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

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

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

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

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

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

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

DEP0173: класс assert.CallTracker

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

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

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

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

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

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

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

v20.8.0

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

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

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

DEP0175: util.toUSVString

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

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

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

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

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

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

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

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

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

DEP0177: util.types.isWebAssemblyCompiledModule

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

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

v21.3.0, v20.11.0

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

v14.0.0

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

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

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

DEP0178: dirent.path

История
Версия Изменения
v21.5.0, v20.12.0, v18.20.0

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

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

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

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

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

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

v21.5.0, v20.12.0

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

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

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

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

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

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

v22.0.0

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

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

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

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

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

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

v22.0.0

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

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

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

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

История
Версия Изменения
v22.0.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/api/deprecations.html

Spec-Zone.ru

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