Устаревшие 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 | End-of-Life. |
v6.12.0 | Назначен код устаревания. |
v5.0.0 | Устаревание во время выполнения. |
Тип: End-of-Life
Модуль _linklist
устарел. Пожалуйста, используйте альтернативу пользовательского уровня.
DEP0003: _writableState.buffer
[История]
Версия | Изменения |
---|---|
v14.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.11.15 | Устаревание во время выполнения. |
Тип: End-of-Life
_writableState.buffer
был удален. Используйте _writableState.getBuffer()
вместо него.
DEP0004: CryptoStream.prototype.readyState
[История]
Версия | Изменения |
---|---|
v10.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.4.0 | Устаревание только в документации. |
Тип: End-of-Life
Свойство CryptoStream.prototype.readyState
было удалено.
DEP0005: Конструктор Buffer()
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание во время выполнения. |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание только в документации. |
Тип: Приложение (только код не в node_modules
)
Функция Buffer()
и конструктор new Buffer()
устарели из-за проблем с удобством использования API, которые могут привести к случайным проблемам безопасности.
В качестве альтернативы используйте один из следующих методов создания объектов Buffer
:
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 | Устаревание только в документации. |
Тип: Конец жизненного цикла
В методах spawn()
, fork()
и exec()
модуля child_process
параметр options.customFds
устарел. Вместо него следует использовать параметр options.stdio
.
DEP0007: Замена cluster
worker.suicide
на worker.exitedAfterDisconnect
[История]
Версия | Изменения |
---|---|
v9.0.0 | Конец жизненного цикла. |
v7.0.0 | Устаревание во время выполнения. |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание только в документации. |
Тип: Конец жизненного цикла
В более ранней версии кластера Node.js к объекту Worker
было добавлено логическое свойство с именем suicide
. Назначение этого свойства состояло в том, чтобы предоставить указание на то, как и почему экземпляр Worker
завершил работу. В Node.js 6.0.0 старое свойство было объявлено устаревшим и заменено новым свойством worker.exitedAfterDisconnect
. Старое имя свойства неточно описывало фактическую семантику и было излишне эмоционально окрашено.
DEP0008: require('node:constants')
[История]
Версия | Изменения |
---|---|
v6.12.0 | Назначен код устаревания. |
v6.3.0 | Устаревание только в документации. |
Тип: Только в документации
Модуль node:constants
устарел. При необходимости доступа к константам, относящимся к определенным встроенным модулям Node.js, разработчики должны вместо этого обращаться к свойству constants
, предоставляемому соответствующим модулем. Например, require('node:fs').constants
и require('node:os').constants
.
DEP0009: crypto.pbkdf2
без digest
[История]
Версия | Изменения |
---|---|
v14.0.0 | Конец жизненного цикла (для digest === null ). |
v11.0.0 | Устаревание во время выполнения (для digest === null ). |
v8.0.0 | Конец жизненного цикла (для digest === undefined ). |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание во время выполнения (для digest === undefined ). |
Тип: Конец жизненного цикла
Использование API crypto.pbkdf2()
без указания digest было объявлено устаревшим в Node.js 6.0, поскольку метод по умолчанию использовал нерекомендуемый digest 'SHA1'
. Ранее выводилось предупреждение об устаревании. Начиная с Node.js 8.0.0, вызов crypto.pbkdf2()
или crypto.pbkdf2Sync()
с digest
, установленным в undefined
, вызовет TypeError
.
Начиная с Node.js v11.0.0, вызов этих функций с digest
, установленным в null
, будет выводить предупреждение об устаревании, чтобы соответствовать поведению, когда digest
равен undefined
.
Теперь, однако, передача либо undefined
, либо null
вызовет TypeError
.
DEP0010: crypto.createCredentials
[История]
Версия | Изменения |
---|---|
v11.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.11.13 | Устаревание во время выполнения. |
Тип: End-of-Life
API crypto.createCredentials()
был удален. Вместо него используйте tls.createSecureContext()
.
DEP0011: crypto.Credentials
[История]
Версия | Изменения |
---|---|
v11.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.11.13 | Устаревание во время выполнения. |
Тип: End-of-Life
Класс crypto.Credentials
был удален. Вместо него используйте tls.SecureContext
.
DEP0012: Domain.dispose
[История]
Версия | Изменения |
---|---|
v9.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.11.7 | Устаревание во время выполнения. |
Тип: End-of-Life
Domain.dispose()
был удален. Явно восстанавливайтесь после неудачных операций ввода-вывода через обработчики событий ошибок, установленные в домене.
DEP0013: Асинхронная функция fs
без обратного вызова
[История]
Версия | Изменения |
---|---|
v10.0.0 | End-of-Life. |
v7.0.0 | Устаревание во время выполнения. |
Тип: End-of-Life
Вызов асинхронной функции без обратного вызова вызывает TypeError
в Node.js 10.0.0 и новее. См. https://github.com/nodejs/node/pull/12562.
DEP0014: Устаревший строковый интерфейс fs.read
[История]
Версия | Изменения |
---|---|
v8.0.0 | End-of-Life. |
v6.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.1.96 | Устаревание только в документации. |
Тип: End-of-Life
Устаревший строковый интерфейс fs.read()
устарел. Вместо него используйте API Buffer
, как указано в документации.
DEP0015: Устаревший строковый интерфейс fs.readSync
[История]
Версия | Изменения |
---|---|
v8.0.0 | End-of-Life. |
v6.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.1.96 | Устаревание только в документации. |
Тип: End-of-Life
Устаревший строковый интерфейс fs.readSync()
устарел. Вместо него используйте API Buffer
, как указано в документации.
DEP0016: GLOBAL
/root
[История]
Версия | Изменения |
---|---|
v14.0.0 | Завершение срока службы. |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание во время выполнения. |
Тип: Завершение срока службы
Псевдонимы GLOBAL
и root
для свойства global
были объявлены устаревшими в Node.js 6.0.0 и с тех пор удалены.
DEP0017: Intl.v8BreakIterator
[История]
Версия | Изменения |
---|---|
v9.0.0 | Завершение срока службы. |
v7.0.0 | Устаревание во время выполнения. |
Тип: Завершение срока службы
Intl.v8BreakIterator
был нестандартным расширением и был удален. См. Intl.Segmenter
.
DEP0018: Необработанные отклонения промисов
[История]
Версия | Изменения |
---|---|
v15.0.0 | Завершение срока службы. |
v7.0.0 | Устаревание во время выполнения. |
Тип: Завершение срока службы
Необработанные отклонения промисов объявлены устаревшими. По умолчанию отклонения промисов, которые не обрабатываются, завершают процесс Node.js с ненулевым кодом выхода. Чтобы изменить способ обработки необработанных отклонений в Node.js, используйте параметр командной строки --unhandled-rejections
.
DEP0019: require('.')
разрешается за пределами каталога
[История]
Версия | Изменения |
---|---|
v12.0.0 | Удалена функциональность. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v1.8.1 | Устаревание во время выполнения. |
Тип: Завершение срока службы
В некоторых случаях require('.')
мог разрешаться за пределами каталога пакета. Это поведение было удалено.
DEP0020: Server.connections
[История]
Версия | Изменения |
---|---|
v15.0.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: <номер>})
.
DEP0022: os.tmpDir()
[История]
Версия | Изменения |
---|---|
v14.0.0 | End-of-Life. |
v7.0.0 | Устаревание во время выполнения. |
Тип: End-of-Life
API os.tmpDir()
был объявлен устаревшим в Node.js 7.0.0 и с тех пор был удален. Пожалуйста, используйте os.tmpdir()
вместо него.
DEP0023: os.getNetworkInterfaces()
[История]
Версия | Изменения |
---|---|
v12.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Был присвоен код устаревания. |
v0.6.0 | Устаревание во время выполнения. |
Тип: End-of-Life
Метод os.getNetworkInterfaces()
устарел. Пожалуйста, используйте метод os.networkInterfaces()
вместо него.
DEP0024: REPLServer.prototype.convertToContext()
[История]
Версия | Изменения |
---|---|
v9.0.0 | End-of-Life. |
v7.0.0 | Устаревание во время выполнения. |
Тип: End-of-Life
API REPLServer.prototype.convertToContext()
был удален.
DEP0025: require('node:sys')
[История]
Версия | Изменения |
---|---|
v6.12.0, v4.8.6 | Был присвоен код устаревания. |
v1.0.0 | Устаревание во время выполнения. |
Тип: Runtime
Модуль node:sys
устарел. Пожалуйста, используйте модуль util
вместо него.
DEP0026: util.print()
[История]
Версия | Изменения |
---|---|
v12.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Был присвоен код устаревания. |
v0.11.3 | Устаревание во время выполнения. |
Тип: End-of-Life
util.print()
был удален. Пожалуйста, используйте console.log()
вместо него.
DEP0027: util.puts()
[История]
Версия | Изменения |
---|---|
v12.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Был присвоен код устаревания. |
v0.11.3 | Устаревание во время выполнения. |
Тип: End-of-Life
util.puts()
был удален. Пожалуйста, используйте console.log()
вместо него.
DEP0028: util.debug()
[История]
Версия | Изменения |
---|---|
v12.0.0 | End-of-Life. |
v6.12.0, v4.8.6 | Был присвоен код устаревания. |
v0.11.3 | Устаревание во время выполнения. |
Тип: End-of-Life
util.debug()
был удален. Пожалуйста, используйте console.error()
вместо него.
DEP0029: util.error()
[История]
Версия | Изменения |
---|---|
v12.0.0 | Конец жизненного цикла. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.11.3 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
util.error()
был удален. Пожалуйста, используйте console.error()
вместо него.
DEP0030: SlowBuffer
[История]
Версия | Изменения |
---|---|
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание только в документации. |
Тип: Только в документации
Класс SlowBuffer
устарел. Пожалуйста, используйте Buffer.allocUnsafeSlow(size)
вместо него.
DEP0031: ecdh.setPublicKey()
[История]
Версия | Изменения |
---|---|
v6.12.0 | Назначен код устаревания. |
v5.2.0 | Устаревание только в документации. |
Тип: Только в документации
Метод ecdh.setPublicKey()
теперь устарел, поскольку его включение в API не является полезным.
DEP0032: модуль node:domain
[История]
Версия | Изменения |
---|---|
v6.12.0, v4.8.6 | Назначен код устаревания. |
v1.4.2 | Устаревание только в документации. |
Тип: Только в документации
Модуль domain
устарел и не должен использоваться.
DEP0033: EventEmitter.listenerCount()
[История]
Версия | Изменения |
---|---|
v6.12.0, v4.8.6 | Назначен код устаревания. |
v3.2.0 | Устаревание только в документации. |
Тип: Только в документации
API events.listenerCount(emitter, eventName)
устарел. Пожалуйста, используйте emitter.listenerCount(eventName)
вместо него.
DEP0034: fs.exists(path, callback)
[История]
Версия | Изменения |
---|---|
v6.12.0, v4.8.6 | Назначен код устаревания. |
v1.0.0 | Устаревание только в документации. |
Тип: Только в документации
API fs.exists(path, callback)
устарел. Пожалуйста, используйте fs.stat()
или fs.access()
вместо него.
DEP0035: fs.lchmod(path, mode, callback)
[История]
Версия | Изменения |
---|---|
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.4.7 | Устаревание только в документации. |
Тип: Только в документации
API fs.lchmod(path, mode, callback)
устарел.
DEP0036: fs.lchmodSync(path, mode)
[История]
Версия | Изменения |
---|---|
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.4.7 | Устаревание только в документации. |
Тип: Только в документации
API fs.lchmodSync(path, mode)
устарел.
DEP0037: fs.lchown(path, uid, gid, callback)
[История]
Версия | Изменения |
---|---|
v10.6.0 | Устаревание отменено. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.4.7 | Устаревание только в документации. |
Тип: Устаревание отменено
API fs.lchown(path, uid, gid, callback)
был объявлен устаревшим. Устаревание было отменено, поскольку в libuv были добавлены необходимые вспомогательные API.
DEP0038: fs.lchownSync(path, uid, gid)
[История]
Версия | Изменения |
---|---|
v10.6.0 | Устаревание отменено. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.4.7 | Устаревание только в документации. |
Тип: Устаревание отменено
API fs.lchownSync(path, uid, gid)
был объявлен устаревшим. Устаревание было отменено, поскольку в libuv были добавлены необходимые вспомогательные API.
DEP0039: require.extensions
[История]
Версия | Изменения |
---|---|
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.10.6 | Устаревание только в документации. |
Тип: Только в документации
Свойство require.extensions
устарело.
DEP0040: модуль node:punycode
[История]
Версия | Изменения |
---|---|
v21.0.0 | Устаревание во время выполнения. |
v16.6.0 | Добавлена поддержка --pending-deprecation . |
v7.0.0 | Устаревание только в документации. |
Тип: Во время выполнения
Модуль punycode
устарел. Пожалуйста, используйте альтернативу из пользовательской области.
DEP0041: Переменная окружения NODE_REPL_HISTORY_FILE
[История]
Версия | Изменения |
---|---|
v10.0.0 | Окончание жизненного цикла. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v3.0.0 | Устаревание только в документации. |
Тип: Окончание жизненного цикла
Переменная окружения NODE_REPL_HISTORY_FILE
была удалена. Пожалуйста, используйте NODE_REPL_HISTORY
вместо нее.
DEP0042: tls.CryptoStream
[История]
Версия | Изменения |
---|---|
v10.0.0 | Окончание жизненного цикла. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v0.11.3 | Устаревание только в документации. |
Тип: Окончание жизненного цикла
Класс tls.CryptoStream
был удален. Пожалуйста, используйте tls.TLSSocket
вместо него.
DEP0043: tls.SecurePair
[История]
Версия | Изменения |
---|---|
v8.0.0 | Устаревание во время выполнения. |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание только в документации. |
v0.11.15 | Устаревание отменено. |
v0.11.3 | Устаревание во время выполнения. |
Тип: Только в документации
Класс tls.SecurePair
устарел. Пожалуйста, используйте tls.TLSSocket
вместо него.
DEP0044: util.isArray()
[История]
Версия | Изменения |
---|---|
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Во время выполнения
API util.isArray()
устарел. Пожалуйста, используйте Array.isArray()
вместо него.
DEP0045: util.isBoolean()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание с окончанием жизненного цикла. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Окончание жизненного цикла
API util.isBoolean()
был удален. Пожалуйста, используйте typeof arg === 'boolean'
вместо него.
DEP0046: util.isBuffer()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание с окончанием жизненного цикла. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Окончание жизненного цикла
API util.isBuffer()
был удален. Пожалуйста, используйте Buffer.isBuffer()
вместо него.
DEP0047: util.isDate()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isDate()
удален. Пожалуйста, используйте arg instanceof Date
вместо него.
DEP0048: util.isError()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isError()
удален. Пожалуйста, используйте Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error
вместо него.
DEP0049: util.isFunction()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isFunction()
удален. Пожалуйста, используйте typeof arg === 'function'
вместо него.
DEP0050: util.isNull()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isNull()
удален. Пожалуйста, используйте arg === null
вместо него.
DEP0051: util.isNullOrUndefined()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isNullOrUndefined()
удален. Пожалуйста, используйте arg === null || arg === undefined
вместо него.
DEP0052: util.isNumber()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isNumber()
удален. Пожалуйста, используйте typeof arg === 'number'
вместо него.
DEP0053: util.isObject()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isObject()
удален. Пожалуйста, используйте arg && typeof arg === 'object'
вместо него.
DEP0054: util.isPrimitive()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isPrimitive()
удален. Пожалуйста, используйте arg === null || (typeof arg !=='object' && typeof arg !== 'function')
вместо него.
DEP0055: util.isRegExp()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isRegExp()
удален. Пожалуйста, используйте arg instanceof RegExp
вместо него.
DEP0056: util.isString()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Прекращение поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Прекращение поддержки
API util.isString()
удален. Пожалуйста, используйте typeof arg === 'string'
вместо него.
DEP0057: util.isSymbol()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание с прекращением поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Устаревание с прекращением поддержки
API util.isSymbol()
был удален. Вместо него используйте typeof arg === 'symbol'
.
DEP0058: util.isUndefined()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание с прекращением поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0, v4.8.6 | Назначен код устаревания. |
v4.0.0, v3.3.1 | Устаревание только в документации. |
Тип: Устаревание с прекращением поддержки
API util.isUndefined()
был удален. Вместо него используйте arg === undefined
.
DEP0059: util.log()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание с прекращением поддержки. |
v22.0.0 | Устаревание во время выполнения. |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание только в документации. |
Тип: Устаревание с прекращением поддержки
API util.log()
был удален, поскольку это неподдерживаемый устаревший API, который был случайно предоставлен пользователям. Вместо этого рассмотрите следующие альтернативы, исходя из ваших конкретных потребностей:
- Сторонние библиотеки для ведения журнала
- Используйте
console.log(new Date().toLocaleString(), message)
Приняв одну из этих альтернатив, вы сможете отказаться от util.log()
и выбрать стратегию ведения журнала, которая соответствует конкретным требованиям и сложности вашего приложения.
DEP0060: util._extend()
[История]
Версия | Изменения |
---|---|
v22.0.0 | Устаревание во время выполнения. |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание только в документации. |
Тип: Устаревание во время выполнения
API util._extend()
устарел, поскольку это неподдерживаемый устаревший API, который был случайно предоставлен пользователям. Вместо него используйте target = Object.assign(target, source)
.
DEP0061: fs.SyncWriteStream
[История]
Версия | Изменения |
---|---|
v11.0.0 | Конец жизненного цикла. |
v8.0.0 | Устаревание во время выполнения. |
v7.0.0 | Устаревание только в документации. |
Тип: Конец жизненного цикла
Класс fs.SyncWriteStream
никогда не предназначался для общедоступного API и был удален. Альтернативного API нет. Пожалуйста, используйте альтернативы в пространстве пользователя.
DEP0062: node --debug
[История]
Версия | Изменения |
---|---|
v12.0.0 | Конец жизненного цикла. |
v8.0.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
--debug
активирует устаревший интерфейс отладчика V8, который был удален в V8 5.8. Он заменен Inspector, который активируется с помощью --inspect
.
DEP0063: ServerResponse.prototype.writeHeader()
[История]
Версия | Изменения |
---|---|
v8.0.0 | Устаревание только в документации. |
Тип: Устаревание только в документации
API ServerResponse.prototype.writeHeader()
модуля node:http
является устаревшим. Пожалуйста, используйте ServerResponse.prototype.writeHead()
вместо него.
Метод ServerResponse.prototype.writeHeader()
никогда не был задокументирован как официально поддерживаемый API.
DEP0064: tls.createSecurePair()
[История]
Версия | Изменения |
---|---|
v8.0.0 | Устаревание во время выполнения. |
v6.12.0 | Назначен код устаревания. |
v6.0.0 | Устаревание только в документации. |
v0.11.15 | Устаревание отменено. |
v0.11.3 | Устаревание во время выполнения. |
Тип: Во время выполнения
API tls.createSecurePair()
был объявлен устаревшим в документации в Node.js 0.11.3. Пользователи должны использовать tls.Socket
вместо него.
DEP0065: repl.REPL_MODE_MAGIC
и NODE_REPL_MODE=magic
[История]
Версия | Изменения |
---|---|
v10.0.0 | Конец жизненного цикла. |
v8.0.0 | Устаревание только в документации. |
Тип: Конец жизненного цикла
Константа REPL_MODE_MAGIC
модуля node:repl
, используемая для опции replMode
, была удалена. Ее поведение функционально идентично поведению REPL_MODE_SLOPPY
с Node.js 6.0.0, когда был импортирован V8 5.0. Пожалуйста, используйте REPL_MODE_SLOPPY
вместо него.
Переменная окружения NODE_REPL_MODE
используется для установки основного replMode
интерактивного сеанса node
. Ее значение, magic
, также удалено. Пожалуйста, используйте sloppy
вместо него.
DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames
[История]
Версия | Изменения |
---|---|
v12.0.0 | Устаревание во время выполнения. |
v8.0.0 | Устаревание только в документации. |
Тип: Выполнение
Свойства OutgoingMessage.prototype._headers
и OutgoingMessage.prototype._headerNames
модуля node:http
устарели. Используйте один из публичных методов (например, OutgoingMessage.prototype.getHeader()
, OutgoingMessage.prototype.getHeaders()
, OutgoingMessage.prototype.getHeaderNames()
, OutgoingMessage.prototype.getRawHeaderNames()
, OutgoingMessage.prototype.hasHeader()
, OutgoingMessage.prototype.removeHeader()
, OutgoingMessage.prototype.setHeader()
) для работы с исходящими заголовками.
Свойства OutgoingMessage.prototype._headers
и OutgoingMessage.prototype._headerNames
никогда не были задокументированы как официально поддерживаемые свойства.
DEP0067: OutgoingMessage.prototype._renderHeaders
[История]
Версия | Изменения |
---|---|
v8.0.0 | Устаревание только в документации. |
Тип: Только в документации
API OutgoingMessage.prototype._renderHeaders()
модуля node:http
устарел.
Свойство OutgoingMessage.prototype._renderHeaders
никогда не было задокументировано как официально поддерживаемое API.
DEP0068: node debug
[История]
Версия | Изменения |
---|---|
v15.0.0 | Устаревшая команда node debug была удалена. |
v8.0.0 | Устаревание во время выполнения. |
Тип: Выведен из употребления
node debug
соответствует устаревшему отладчику CLI, который был заменен отладчиком CLI на основе V8-инспектора, доступным через node inspect
.
DEP0069: vm.runInDebugContext(string)
[История]
Версия | Изменения |
---|---|
v10.0.0 | Выведен из употребления. |
v9.0.0 | Устаревание во время выполнения. |
v8.0.0 | Устаревание только в документации. |
Тип: Выведен из употребления
DebugContext был удален в V8 и недоступен в Node.js 10+.
DebugContext был экспериментальным API.
DEP0070: async_hooks.currentId()
[История]
Версия | Изменения |
---|---|
v9.0.0 | Выведен из употребления. |
v8.2.0 | Устаревание во время выполнения. |
Тип: Выведен из употребления
async_hooks.currentId()
был переименован в async_hooks.executionAsyncId()
для ясности.
Это изменение было внесено, когда async_hooks
был экспериментальным API.
DEP0071: async_hooks.triggerId()
[История]
Версия | Изменения |
---|---|
v9.0.0 | Завершение жизненного цикла. |
v8.2.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
async_hooks.triggerId()
был переименован в async_hooks.triggerAsyncId()
для ясности.
Это изменение было сделано, когда async_hooks
был экспериментальным API.
DEP0072: async_hooks.AsyncResource.triggerId()
[История]
Версия | Изменения |
---|---|
v9.0.0 | Завершение жизненного цикла. |
v8.2.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
async_hooks.AsyncResource.triggerId()
был переименован в async_hooks.AsyncResource.triggerAsyncId()
для ясности.
Это изменение было сделано, когда async_hooks
был экспериментальным API.
DEP0073: Несколько внутренних свойств net.Server
[История]
Версия | Изменения |
---|---|
v10.0.0 | Завершение жизненного цикла. |
v9.0.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
Доступ к нескольким внутренним, недокументированным свойствам экземпляров net.Server
с несоответствующими именами является устаревшим.
Поскольку исходный API был недокументированным и, как правило, бесполезным для не внутреннего кода, никакой замены API не предусмотрено.
DEP0074: REPLServer.bufferedCommand
[История]
Версия | Изменения |
---|---|
v15.0.0 | Завершение жизненного цикла. |
v9.0.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
Свойство REPLServer.bufferedCommand
устарело в пользу REPLServer.clearBufferedCommand()
.
DEP0075: REPLServer.parseREPLKeyword()
[История]
Версия | Изменения |
---|---|
v15.0.0 | Завершение жизненного цикла. |
v9.0.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
REPLServer.parseREPLKeyword()
был удален из видимости пользовательского пространства.
DEP0076: tls.parseCertString()
[История]
Версия | Изменения |
---|---|
v18.0.0 | Завершение жизненного цикла. |
v9.0.0 | Устаревание во время выполнения. |
v8.6.0 | Устаревание только в документации. |
Тип: Завершение жизненного цикла
tls.parseCertString()
был тривиальным вспомогательным парсером, который был по ошибке сделан публичным. Хотя он должен был анализировать строки субъекта и издателя сертификата, он никогда не обрабатывал правильно многозначные относительные отличительные имена.
Более ранние версии этого документа предлагали использовать querystring.parse()
в качестве альтернативы tls.parseCertString()
. Однако querystring.parse()
также не обрабатывает все субъекты сертификатов правильно и не должен использоваться.
DEP0077: Module._debug()
[История]
Версия | Изменения |
---|---|
v9.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Module._debug()
устарел.
Функция Module._debug()
никогда не была официально документирована как поддерживаемый API.
DEP0078: REPLServer.turnOffEditorMode()
[История]
Версия | Изменения |
---|---|
v15.0.0 | Завершение жизненного цикла. |
v9.0.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
REPLServer.turnOffEditorMode()
был удален из видимости пользовательского пространства.
DEP0079: Пользовательская функция инспектирования объектов через .inspect()
[История]
Версия | Изменения |
---|---|
v11.0.0 | Завершение жизненного цикла. |
v10.0.0 | Устаревание во время выполнения. |
v8.7.0 | Устаревание только в документации. |
Тип: Завершение жизненного цикла
Использование свойства с именем inspect
на объекте для указания пользовательской функции инспектирования для util.inspect()
устарело. Используйте util.inspect.custom
вместо этого. Для обратной совместимости с Node.js до версии 6.4.0 можно указать оба варианта.
DEP0080: path._makeLong()
[История]
Версия | Изменения |
---|---|
v9.0.0 | Устаревание только в документации. |
Тип: Только в документации
Внутренний path._makeLong()
не предназначался для публичного использования. Однако модули пользовательского пространства нашли его полезным. Внутренний API устарел и заменен идентичным, публичным методом path.toNamespacedPath()
.
DEP0081: fs.truncate()
с использованием файлового дескриптора
[История]
Версия | Изменения |
---|---|
v9.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Использование fs.truncate()
fs.truncateSync()
с файловым дескриптором устарело. Пожалуйста, используйте fs.ftruncate()
или fs.ftruncateSync()
для работы с файловыми дескрипторами.
DEP0082: REPLServer.prototype.memory()
[История]
Версия | Изменения |
---|---|
v15.0.0 | Завершение жизненного цикла. |
v9.0.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
REPLServer.prototype.memory()
необходим только для внутренней механики самого REPLServer
. Не используйте эту функцию.
DEP0083: Отключение ECDH путем установки ecdhCurve
в false
[История]
Версия | Изменения |
---|---|
v10.0.0 | Конец жизненного цикла. |
v9.2.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла.
Опция ecdhCurve
для tls.createSecureContext()
и tls.TLSSocket
могла быть установлена в false
, чтобы полностью отключить ECDH только на сервере. Этот режим был объявлен устаревшим в рамках подготовки к переходу на OpenSSL 1.1.0 и для обеспечения согласованности с клиентом и теперь не поддерживается. Используйте параметр ciphers
вместо него.
DEP0084: требование встроенных внутренних зависимостей
[История]
Версия | Изменения |
---|---|
v12.0.0 | Эта функциональность была удалена. |
v10.0.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
Начиная с версий Node.js 4.4.0 и 5.2.0, несколько модулей, предназначенных только для внутреннего использования, по ошибке были доступны для пользовательского кода через require()
. Этими модулями были:
v8/tools/codemap
v8/tools/consarray
v8/tools/csvparser
v8/tools/logreader
v8/tools/profile_view
v8/tools/profile
v8/tools/SourceMap
v8/tools/splaytree
v8/tools/tickprocessor-driver
v8/tools/tickprocessor
node-inspect/lib/_inspect
(начиная с 7.6.0)node-inspect/lib/internal/inspect_client
(начиная с 7.6.0)node-inspect/lib/internal/inspect_repl
(начиная с 7.6.0)
Модули v8/*
не имеют экспорта, и если они не импортируются в определенном порядке, они фактически будут вызывать ошибки. Таким образом, практически нет законных случаев использования для их импорта через require()
.
С другой стороны, node-inspect
можно установить локально через менеджер пакетов, поскольку он опубликован в реестре npm под тем же именем. В этом случае не требуется никакого изменения исходного кода.
DEP0085: Конфиденциальный API AsyncHooks
[История]
Версия | Изменения |
---|---|
v10.0.0 | Конец жизненного цикла. |
v9.4.0, v8.10.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
Конфиденциальный API AsyncHooks никогда не был задокументирован и имел различные незначительные проблемы. Вместо этого используйте API AsyncResource
. См. https://github.com/nodejs/node/issues/15572.
DEP0086: Удаление runInAsyncIdScope
[История]
Версия | Изменения |
---|---|
v10.0.0 | Срок службы истек. |
v9.4.0, v8.10.0 | Устаревание во время выполнения. |
Тип: Срок службы истек
runInAsyncIdScope
не генерирует события 'before'
или 'after'
и поэтому может вызывать множество проблем. См. https://github.com/nodejs/node/issues/14328.
DEP0089: require('node:assert')
[История]
Версия | Изменения |
---|---|
v12.8.0 | Устаревание отменено. |
v9.9.0, v8.13.0 | Устаревание только в документации. |
Тип: Устаревание отменено
Прямой импорт assert не рекомендовался, поскольку предоставляемые функции используют нестрогие проверки на равенство. Устаревание было отменено, поскольку использование модуля node:assert
не является нежелательным, а устаревание вызвало путаницу у разработчиков.
DEP0090: Недопустимая длина тега аутентификации GCM
[История]
Версия | Изменения |
---|---|
v11.0.0 | Срок службы истек. |
v10.0.0 | Устаревание во время выполнения. |
Тип: Срок службы истек
Node.js раньше поддерживал все длины тегов аутентификации GCM, которые принимаются OpenSSL при вызове decipher.setAuthTag()
. Начиная с Node.js v11.0.0, разрешены только длины тегов аутентификации 128, 120, 112, 104, 96, 64 и 32 бита. Теги аутентификации другой длины недопустимы согласно NIST SP 800-38D.
DEP0091: crypto.DEFAULT_ENCODING
[История]
Версия | Изменения |
---|---|
v20.0.0 | Срок службы истек. |
v10.0.0 | Устаревание во время выполнения. |
Тип: Срок службы истек
Свойство crypto.DEFAULT_ENCODING
существовало только для совместимости с выпусками Node.js до версий 0.9.3 и было удалено.
DEP0092: this
верхнего уровня привязан к module.exports
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание только в документации. |
Тип: Только в документации
Присваивание свойств this
верхнего уровня в качестве альтернативы module.exports
является устаревшим. Разработчикам следует использовать exports
или module.exports
вместо этого.
DEP0093: crypto.fips
устарел и заменен
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание во время выполнения. |
v10.0.0 | Устаревание только в документации. |
Тип: Во время выполнения
Свойство crypto.fips
устарело. Пожалуйста, используйте crypto.setFips()
и crypto.getFips()
вместо него.
DEP0094: Использование assert.fail()
с более чем одним аргументом
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Использование assert.fail()
с более чем одним аргументом устарело. Используйте assert.fail()
только с одним аргументом или используйте другой метод модуля node:assert
.
DEP0095: timers.enroll()
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
timers.enroll()
устарел. Пожалуйста, используйте публично документированные setTimeout()
или setInterval()
вместо него.
DEP0096: timers.unenroll()
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
timers.unenroll()
устарел. Пожалуйста, используйте публично документированные clearTimeout()
или clearInterval()
вместо него.
DEP0097: MakeCallback
со свойством domain
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Пользователи MakeCallback
, которые добавляют свойство domain
для передачи контекста, должны начать использовать вариант async_context
для MakeCallback
или CallbackScope
, или высокоуровневый класс AsyncResource
.
DEP0098: Встроенные AsyncHooks API AsyncResource.emitBefore
и AsyncResource.emitAfter
[История]
Версия | Изменения |
---|---|
v12.0.0 | Конец жизни. |
v10.0.0, v9.6.0, v8.12.0 | Устаревание во время выполнения. |
Тип: Конец жизни
Встроенный API, предоставляемый AsyncHooks, предоставляет методы .emitBefore()
и .emitAfter()
, которые очень легко использовать неправильно, что может привести к непоправимым ошибкам.
Вместо этого используйте API asyncResource.runInAsyncScope()
, который обеспечивает гораздо более безопасную и удобную альтернативу. См. https://github.com/nodejs/node/pull/18513.
DEP0099: Асинхронные API node::MakeCallback
C++, не учитывающие контекст
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание во время компиляции. |
Тип: Время компиляции
Определенные версии API node::MakeCallback
, доступные для нативных дополнений, являются устаревшими. Пожалуйста, используйте версии API, которые принимают параметр async_context
.
DEP0100: process.assert()
[История]
Версия | Изменения |
---|---|
v23.0.0 | Конец срока службы. |
v10.0.0 | Устаревание во время выполнения. |
v0.3.7 | Устаревание только в документации. |
Тип: Конец срока службы
process.assert()
устарел. Пожалуйста, используйте вместо него модуль assert
.
Это никогда не было документированной функцией.
DEP0101: --with-lttng
[История]
Версия | Изменения |
---|---|
v10.0.0 | Конец срока службы. |
Тип: Конец срока службы
Опция времени компиляции --with-lttng
была удалена.
DEP0102: Использование noAssert
в операциях Buffer#(read|write)
[История]
Версия | Изменения |
---|---|
v10.0.0 | Конец срока службы. |
Тип: Конец срока службы
Использование аргумента noAssert
больше не имеет функциональности. Все входные данные проверяются независимо от значения noAssert
. Пропуск проверки может привести к трудно обнаруживаемым ошибкам и сбоям.
DEP0103: Проверки типов process.binding('util').is[...]
[История]
Версия | Изменения |
---|---|
v10.9.0 | Заменено DEP0111. |
v10.0.0 | Устаревание только в документации. |
Тип: Только документация (поддерживает --pending-deprecation
)
Следует избегать использования process.binding()
в целом. В частности, методы проверки типов можно заменить, используя util.types
.
Это устаревание было заменено устареванием API process.binding()
(DEP0111).
DEP0104: Приведение строк process.env
[История]
Версия | Изменения |
---|---|
v10.0.0 | Устаревание только в документации. |
Тип: Только документация (поддерживает --pending-deprecation
)
При присваивании нестрокового свойства process.env
, присваиваемое значение неявно преобразуется в строку. Такое поведение устарело, если присваиваемое значение не является строкой, булевым значением или числом. В будущем такое присваивание может привести к возникновению ошибки. Пожалуйста, преобразуйте свойство в строку перед присвоением его process.env
.
DEP0105: decipher.finaltol
[История]
Версия | Изменения |
---|---|
v11.0.0 | Окончание жизненного цикла. |
v10.0.0 | Устаревание во время выполнения. |
Тип: Окончание жизненного цикла
decipher.finaltol()
никогда не был задокументирован и являлся псевдонимом для decipher.final()
. Этот API был удален, и рекомендуется использовать decipher.final()
вместо него.
DEP0106: crypto.createCipher
и crypto.createDecipher
[История]
Версия | Изменения |
---|---|
v22.0.0 | Окончание жизненного цикла. |
v11.0.0 | Устаревание во время выполнения. |
v10.0.0 | Устаревание только в документации. |
Тип: Окончание жизненного цикла
crypto.createCipher()
и crypto.createDecipher()
были удалены, так как они используют слабую функцию вывода ключа (MD5 без соли) и статические векторы инициализации. Рекомендуется выводить ключ с помощью crypto.pbkdf2()
или crypto.scrypt()
со случайными солями и использовать crypto.createCipheriv()
и crypto.createDecipheriv()
для получения объектов Cipher
и Decipher
соответственно.
DEP0107: tls.convertNPNProtocols()
[История]
Версия | Изменения |
---|---|
v11.0.0 | Окончание жизненного цикла. |
v10.0.0 | Устаревание во время выполнения. |
Тип: Окончание жизненного цикла
Это была незадокументированная вспомогательная функция, не предназначенная для использования вне ядра Node.js и устаревшая из-за удаления поддержки NPN (Next Protocol Negotiation).
DEP0108: zlib.bytesRead
[История]
Версия | Изменения |
---|---|
v23.0.0 | Окончание жизненного цикла. |
v11.0.0 | Устаревание во время выполнения. |
v10.0.0 | Устаревание только в документации. |
Тип: Окончание жизненного цикла
Устаревший псевдоним для zlib.bytesWritten
. Это оригинальное имя было выбрано, потому что также имело смысл интерпретировать значение как количество байтов, прочитанных движком, но это несовместимо с другими потоками в Node.js, которые отображают значения под этими именами.
DEP0109: Поддержка http
, https
и tls
для недопустимых URL-адресов
[История]
Версия | Изменения |
---|---|
v16.0.0 | Конец срока эксплуатации. |
v11.0.0 | Устаревание во время выполнения. |
Тип: Конец срока эксплуатации
Некоторые ранее поддерживаемые (но строго недопустимые) URL-адреса принимались через API http.request()
, http.get()
, https.request()
, https.get()
и tls.checkServerIdentity()
, поскольку они принимались устаревшим API url.parse()
. Упомянутые API теперь используют парсер WHATWG URL, который требует строго допустимых URL-адресов. Передача недопустимого URL-адреса устарела, и поддержка будет удалена в будущем.
DEP0110: Кэшированные данные vm.Script
[История]
Версия | Изменения |
---|---|
v10.6.0 | Устаревание только в документации. |
Тип: Только в документации
Опция produceCachedData
устарела. Вместо нее используйте script.createCachedData()
.
DEP0111: process.binding()
[История]
Версия | Изменения |
---|---|
v11.12.0 | Добавлена поддержка --pending-deprecation . |
v10.9.0 | Устаревание только в документации. |
Тип: Только в документации (поддерживает --pending-deprecation
)
process.binding()
предназначен только для использования внутренним кодом Node.js.
Хотя process.binding()
в целом не достиг статуса "Конец срока эксплуатации", он недоступен, когда модель разрешений включена.
DEP0112: Приватные API dgram
[История]
Версия | Изменения |
---|---|
v11.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Модуль node:dgram
ранее содержал несколько API, которые никогда не предназначались для доступа за пределами ядра Node.js: Socket.prototype._handle
, Socket.prototype._receiving
, Socket.prototype._bindState
, Socket.prototype._queue
, Socket.prototype._reuseAddr
, Socket.prototype._healthCheck()
, Socket.prototype._stopReceiving()
и dgram._createSocketHandle()
.
DEP0113: Cipher.setAuthTag()
, Decipher.getAuthTag()
[История]
Версия | Изменения |
---|---|
v12.0.0 | Конец жизненного цикла. |
v11.0.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
Cipher.setAuthTag()
и Decipher.getAuthTag()
больше не доступны. Они никогда не были задокументированы и вызывали ошибку при вызове.
DEP0114: crypto._toBuf()
[История]
Версия | Изменения |
---|---|
v12.0.0 | Конец жизненного цикла. |
v11.0.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
Функция crypto._toBuf()
не была предназначена для использования модулями вне ядра Node.js и была удалена.
DEP0115: crypto.prng()
, crypto.pseudoRandomBytes()
, crypto.rng()
[История]
Версия | Изменения |
---|---|
v11.0.0 | Добавлено устаревание только в документации с поддержкой --pending-deprecation . |
Тип: Только в документации (поддерживает --pending-deprecation
)
В последних версиях Node.js нет разницы между crypto.randomBytes()
и crypto.pseudoRandomBytes()
. Последний объявлен устаревшим, наряду с незадокументированными псевдонимами crypto.prng()
и crypto.rng()
, в пользу crypto.randomBytes()
и может быть удален в будущем выпуске.
DEP0116: Устаревший URL API
[История]
Версия | Изменения |
---|---|
v19.0.0, v18.13.0 | url.parse() снова устарел в DEP0169. |
v15.13.0, v14.17.0 | Устаревание отменено. Статус изменен на "Устаревший". |
v11.0.0 | Устаревание только в документации. |
Тип: Устаревание отменено
Устаревший URL API объявлен устаревшим. Это включает url.format()
, url.parse()
, url.resolve()
и устаревший urlObject
. Пожалуйста, используйте WHATWG URL API вместо этого.
DEP0117: Нативные криптографические дескрипторы
[История]
Версия | Изменения |
---|---|
v12.0.0 | Конец жизненного цикла. |
v11.0.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
Предыдущие версии Node.js предоставляли дескрипторы для внутренних нативных объектов через свойство _handle
классов Cipher
, Decipher
, DiffieHellman
, DiffieHellmanGroup
, ECDH
, Hash
, Hmac
, Sign
и Verify
. Свойство _handle
было удалено, поскольку неправильное использование нативного объекта может привести к сбою приложения.
DEP0118: Поддержка dns.lookup()
для ложного имени хоста
[История]
Версия | Изменения |
---|---|
v11.0.0 | Устаревание во время выполнения. |
Тип: Время выполнения
Предыдущие версии Node.js поддерживали dns.lookup()
с ложным именем хоста, например dns.lookup(false)
, из-за обратной совместимости. Это поведение не задокументировано и считается неиспользуемым в реальных приложениях. В будущих версиях Node.js это приведет к ошибке.
DEP0119: Приватный API process.binding('uv').errname()
[История]
Версия | Изменения |
---|---|
v11.0.0 | Устаревание только в документации. |
Тип: Только документация (поддерживает --pending-deprecation
)
process.binding('uv').errname()
устарел. Пожалуйста, используйте util.getSystemErrorName()
вместо него.
DEP0120: Поддержка счетчиков производительности Windows
[История]
Версия | Изменения |
---|---|
v12.0.0 | Конец жизненного цикла. |
v11.0.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
Поддержка счетчиков производительности Windows была удалена из Node.js. Незадокументированные функции COUNTER_NET_SERVER_CONNECTION()
, COUNTER_NET_SERVER_CONNECTION_CLOSE()
, COUNTER_HTTP_SERVER_REQUEST()
, COUNTER_HTTP_SERVER_RESPONSE()
, COUNTER_HTTP_CLIENT_REQUEST()
и COUNTER_HTTP_CLIENT_RESPONSE()
устарели.
DEP0121: net._setSimultaneousAccepts()
[История]
Версия | Изменения |
---|---|
v12.0.0 | Устаревание во время выполнения. |
Тип: Время выполнения
Незадокументированная функция net._setSimultaneousAccepts()
изначально предназначалась для отладки и настройки производительности при использовании модулей node:child_process
и node:cluster
в Windows. Функция в целом бесполезна и будет удалена. См. обсуждение здесь: https://github.com/nodejs/node/issues/18391
DEP0122: tls
Server.prototype.setOptions()
[История]
Версия | Изменения |
---|---|
v12.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Пожалуйста, используйте Server.prototype.setSecureContext()
вместо этого.
DEP0123: установка TLS ServerName на IP-адрес
[История]
Версия | Изменения |
---|---|
v12.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Установка TLS ServerName на IP-адрес не разрешена RFC 6066. Это будет проигнорировано в будущей версии.
DEP0124: использование REPLServer.rli
[История]
Версия | Изменения |
---|---|
v15.0.0 | Конец жизненного цикла. |
v12.0.0 | Устаревание во время выполнения. |
Тип: Конец жизненного цикла
Это свойство является ссылкой на сам экземпляр.
DEP0125: require('node:_stream_wrap')
[История]
Версия | Изменения |
---|---|
v12.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Модуль node:_stream_wrap
устарел.
DEP0126: timers.active()
[История]
Версия | Изменения |
---|---|
v11.14.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Ранее недокументированный timers.active()
устарел. Пожалуйста, используйте публично документированный timeout.refresh()
вместо этого. Если необходимо повторно ссылаться на тайм-аут, timeout.ref()
можно использовать без потери производительности, начиная с Node.js 10.
DEP0127: timers._unrefActive()
[История]
Версия | Изменения |
---|---|
v11.14.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Ранее недокументированный и "приватный" timers._unrefActive()
устарел. Пожалуйста, используйте публично документированный timeout.refresh()
вместо этого. Если необходимо отменить ссылку на тайм-аут, timeout.unref()
можно использовать без потери производительности, начиная с Node.js 10.
DEP0128: модули с неверной записью main
и файлом index.js
[История]
Версия | Изменения |
---|---|
v16.0.0 | Устаревание во время выполнения. |
v12.0.0 | Только документация. |
Тип: Во время выполнения
Модули, которые имеют неверную запись main
(например, ./does-not-exist.js
), а также имеют файл index.js
в корневом каталоге, будут разрешать файл index.js
. Это устарело и вызовет ошибку в будущих версиях Node.js.
DEP0129: ChildProcess._channel
[История]
Версия | Изменения |
---|---|
v13.0.0 | Устаревание во время выполнения. |
v11.14.0 | Только документация. |
Тип: Во время выполнения
Свойство _channel
объектов дочерних процессов, возвращаемых функциями spawn()
и аналогичными, не предназначено для публичного использования. Вместо этого используйте ChildProcess.channel
.
DEP0130: Module.createRequireFromPath()
[История]
Версия | Изменения |
---|---|
v16.0.0 | Конец срока службы. |
v13.0.0 | Устаревание во время выполнения. |
v12.2.0 | Только документация. |
Тип: Конец срока службы
Вместо этого используйте module.createRequire()
.
DEP0131: Устаревший HTTP-парсер
[История]
Версия | Изменения |
---|---|
v13.0.0 | Эта функция была удалена. |
v12.22.0 | Устаревание во время выполнения. |
v12.3.0 | Только документация. |
Тип: Конец срока службы
Устаревший HTTP-парсер, используемый по умолчанию в версиях Node.js до 12.0.0, объявлен устаревшим и был удален в версии 13.0.0. До версии 13.0.0 для возврата к использованию устаревшего парсера можно было использовать флаг командной строки --http-parser=legacy
.
DEP0132: worker.terminate()
с обратным вызовом
[История]
Версия | Изменения |
---|---|
v12.5.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Передача обратного вызова в worker.terminate()
является устаревшей. Вместо этого используйте возвращенный Promise
или прослушиватель события 'exit'
рабочего процесса.
DEP0133: http
connection
[История]
Версия | Изменения |
---|---|
v12.12.0 | Устаревание только в документации. |
Тип: Только документация
Предпочитайте response.socket
вместо response.connection
и request.socket
вместо request.connection
.
DEP0134: process._tickCallback
[История]
Версия | Изменения |
---|---|
v12.12.0 | Устаревание только в документации. |
Тип: Только документация (поддерживает --pending-deprecation
)
Свойство process._tickCallback
никогда не было задокументировано как официально поддерживаемый API.
DEP0135: WriteStream.open()
и ReadStream.open()
являются внутренними
[История]
Версия | Изменения |
---|---|
v13.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
WriteStream.open()
и ReadStream.open()
являются недокументированными внутренними API, которые не имеют смысла для использования в пользовательском коде. Файловые потоки всегда должны открываться через соответствующие фабричные методы fs.createWriteStream()
и fs.createReadStream()
или путем передачи файлового дескриптора в опциях.
DEP0136: http
finished
[История]
Версия | Изменения |
---|---|
v13.4.0, v12.16.0 | Устаревание только в документации. |
Тип: Только в документации
response.finished
указывает, был ли вызван response.end()
, а не был ли сгенерирован 'finish'
и были ли сброшены базовые данные.
Вместо этого используйте response.writableFinished
или response.writableEnded
соответственно, чтобы избежать неоднозначности.
Для сохранения существующего поведения response.finished
следует заменить на response.writableEnded
.
DEP0137: Закрытие fs.FileHandle при сборке мусора
[История]
Версия | Изменения |
---|---|
v14.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Разрешение объекту fs.FileHandle
быть закрытым при сборке мусора является устаревшим. В будущем это может привести к выбросу ошибки, которая завершит процесс.
Пожалуйста, убедитесь, что все объекты fs.FileHandle
явно закрыты с помощью FileHandle.prototype.close()
, когда fs.FileHandle
больше не нужен:
const fsPromises = require('node:fs').promises
async function openAndClose() {
let filehandle
try {
filehandle = await fsPromises.open('thefile.txt', 'r')
} finally {
if (filehandle !== undefined) await filehandle.close()
}
}
DEP0138: process.mainModule
[История]
Версия | Изменения |
---|---|
v14.0.0 | Устаревание только в документации. |
Тип: Только в документации
process.mainModule
— это функция, предназначенная только для CommonJS, в то время как глобальный объект process
является общим для сред, отличных от CommonJS. Его использование в модулях ECMAScript не поддерживается.
Он объявлен устаревшим в пользу require.main
, поскольку служит той же цели и доступен только в среде CommonJS.
DEP0139: process.umask()
без аргументов
[История]
Версия | Изменения |
---|---|
v14.0.0, v12.19.0 | Устаревание только в документации. |
Тип: Только в документации
Вызов process.umask()
без аргументов приводит к тому, что маска umask процесса записывается дважды. Это создает состояние гонки между потоками и является потенциальной уязвимостью безопасности. Нет безопасного, кроссплатформенного альтернативного API.
DEP0140: Используйте request.destroy()
вместо request.abort()
[История]
Версия | Изменения |
---|---|
v14.1.0, v13.14.0 | Устаревание только в документации. |
Тип: Только в документации
Используйте request.destroy()
вместо request.abort()
.
DEP0141: repl.inputStream
и repl.outputStream
[История]
Версия | Изменения |
---|---|
v14.3.0 | Только в документации (поддерживает [--pending-deprecation ][]). |
Тип: Только в документации (поддерживает --pending-deprecation
)
Модуль node:repl
экспортировал входной и выходной поток дважды. Используйте .input
вместо .inputStream
и .output
вместо .outputStream
.
DEP0142: repl._builtinLibs
[История]
Версия | Изменения |
---|---|
v14.3.0 | Только в документации (поддерживает [--pending-deprecation ][]). |
Тип: Только в документации
Модуль node:repl
экспортирует свойство _builtinLibs
, которое содержит массив встроенных модулей. Он был неполным, поэтому лучше полагаться на require('node:module').builtinModules
.
DEP0143: Transform._transformState
[История]
Версия | Изменения |
---|---|
v14.5.0 | Устаревание во время выполнения. |
Тип: Во время выполнения Transform._transformState
будет удален в будущих версиях, где он больше не требуется из-за упрощения реализации.
DEP0144: module.parent
[История]
Версия | Изменения |
---|---|
v14.6.0, v12.19.0 | Устаревание только в документации. |
Тип: Только в документации (поддерживает --pending-deprecation
)
Модуль CommonJS может получить доступ к первому модулю, который его потребовал, с помощью module.parent
. Эта функция устарела, поскольку она не работает согласованно при наличии модулей ECMAScript и поскольку она дает неточное представление о графе модулей CommonJS.
Некоторые модули используют его для проверки того, являются ли они точкой входа текущего процесса. Вместо этого рекомендуется сравнивать require.main
и module
:
if (require.main === module) {
// Раздел кода, который будет выполняться только в том случае, если текущий файл является точкой входа.
}
При поиске модулей CommonJS, которые потребовали текущий, можно использовать require.cache
и module.children
:
const moduleParents = Object.values(require.cache).filter(m => m.children.includes(module))
DEP0145: socket.bufferSize
[История]
Версия | Изменения |
---|---|
v14.6.0 | Устаревание только в документации. |
Тип: Только в документации
socket.bufferSize
— это всего лишь псевдоним для writable.writableLength
.
DEP0146: new crypto.Certificate()
[История]
Версия | Изменения |
---|---|
v14.9.0 | Устаревание только в документации. |
Тип: Только в документации
Конструктор crypto.Certificate()
устарел. Вместо этого используйте статические методы crypto.Certificate()
.
DEP0147: fs.rmdir(path, { recursive: true })
{#dep0147-fsrmdirpath-{-recursive-true-}}
[История]
Версия | Изменения |
---|---|
v16.0.0 | Устаревание во время выполнения. |
v15.0.0 | Устаревание во время выполнения для разрешительного поведения. |
v14.14.0 | Устаревание только в документации. |
Тип: Во время выполнения
В будущих версиях Node.js опция recursive
будет игнорироваться для fs.rmdir
, fs.rmdirSync
и fs.promises.rmdir
.
Вместо этого используйте fs.rm(path, { recursive: true, force: true })
, fs.rmSync(path, { recursive: true, force: true })
или fs.promises.rm(path, { recursive: true, force: true })
.
DEP0148: Сопоставления папок в "exports"
(завершающий "/"
)
[История]
Версия | Изменения |
---|---|
v17.0.0 | Завершение жизненного цикла. |
v16.0.0 | Устаревание во время выполнения. |
v15.1.0 | Устаревание во время выполнения для самоссылающихся импортов. |
v14.13.0 | Устаревание только в документации. |
Тип: Во время выполнения
Использование завершающего "/"
для определения сопоставлений подпутей папок в полях экспорта подпутей или импорта подпутей является устаревшим. Вместо этого используйте шаблоны подпутей.
DEP0149: http.IncomingMessage#connection
[История]
Версия | Изменения |
---|---|
v16.0.0 | Устаревание только в документации. |
Тип: Только в документации.
Предпочитайте message.socket
вместо message.connection
.
DEP0150: Изменение значения process.config
[История]
Версия | Изменения |
---|---|
v19.0.0 | Завершение жизненного цикла. |
v16.0.0 | Устаревание во время выполнения. |
Тип: Завершение жизненного цикла
Свойство process.config
обеспечивает доступ к настройкам Node.js во время компиляции. Однако свойство является изменяемым и, следовательно, подвержено несанкционированному изменению. Возможность изменения значения будет удалена в будущей версии Node.js.
DEP0151: Поиск основного индекса и поиск расширений
[История]
Версия | Изменения |
---|---|
v16.0.0 | Устаревание во время выполнения. |
v15.8.0, v14.18.0 | Устаревание только в документации с поддержкой --pending-deprecation . |
Тип: Во время выполнения
Ранее поиск index.js
и поиск расширений применялись бы к разрешению основной точки входа import 'pkg'
, даже при разрешении модулей ES.
С этим устареванием все разрешения основной точки входа модулей ES требуют явной записи "exports"
или "main"
с точным расширением файла.
DEP0152: Свойства Extension PerformanceEntry
[История]
Версия | Изменения |
---|---|
v16.0.0 | Устаревание во время выполнения. |
Тип: Во время выполнения
Типы объектов <PerformanceEntry> 'gc'
, 'http2'
и 'http'
имеют дополнительные свойства, назначенные им, которые предоставляют дополнительную информацию. Эти свойства теперь доступны в стандартном свойстве detail
объекта PerformanceEntry
. Существующие методы доступа устарели и больше не должны использоваться.
DEP0153: Приведение типов опций dns.lookup
и dnsPromises.lookup
[История]
Версия | Изменения |
---|---|
v18.0.0 | Завершение жизненного цикла. |
v17.0.0 | Устаревание во время выполнения. |
v16.8.0 | Устаревание только в документации. |
Тип: Завершение жизненного цикла
Использование не-nullish нецелочисленного значения для опции family
, не-nullish нечислового значения для опции hints
, не-nullish небулевого значения для опции all
или не-nullish небулевого значения для опции verbatim
в dns.lookup()
и dnsPromises.lookup()
вызывает ошибку ERR_INVALID_ARG_TYPE
.
DEP0154: Опции генерации ключевой пары RSA-PSS
[История]
Версия | Изменения |
---|---|
v20.0.0 | Устаревание во время выполнения. |
v16.10.0 | Устаревание только в документации. |
Тип: Устаревание во время выполнения
Опции 'hash'
и 'mgf1Hash'
заменены на 'hashAlgorithm'
и 'mgf1HashAlgorithm'
.
DEP0155: Завершающие слеши в разрешениях спецификаторов шаблонов
[История]
Версия | Изменения |
---|---|
v17.0.0 | Устаревание во время выполнения. |
v16.10.0 | Устаревание только в документации с поддержкой --pending-deprecation . |
Тип: Устаревание во время выполнения
Переназначение спецификаторов, заканчивающихся на "/"
, таких как import 'pkg/x/'
, устарело для разрешения шаблонов "exports"
и "imports"
пакета.
DEP0156: Свойство .aborted
и события 'abort'
, 'aborted'
в http
[История]
Версия | Изменения |
---|---|
v17.0.0, v16.12.0 | Устаревание только в документации. |
Тип: Устаревание только в документации
Вместо этого перейдите к API <Stream>, поскольку http.ClientRequest
, http.ServerResponse
и http.IncomingMessage
основаны на потоках. Проверяйте stream.destroyed
вместо свойства .aborted
и прослушивайте 'close'
вместо событий 'abort'
, 'aborted'
.
Свойство .aborted
и событие 'abort'
полезны только для обнаружения вызовов .abort()
. Для досрочного закрытия запроса используйте Stream .destroy([error])
, а затем проверьте свойство .destroyed
и событие 'close'
, которые должны иметь тот же эффект. Принимающая сторона также должна проверить значение readable.readableEnded
в http.IncomingMessage
, чтобы узнать, было ли это прерванное или корректное завершение.
DEP0157: Поддержка thenable в потоках
[История]
Версия | Изменения |
---|---|
v18.0.0 | Конец срока службы. |
v17.2.0, v16.14.0 | Устаревание только в документации. |
Тип: Конец срока службы
Недокументированной особенностью потоков Node.js была поддержка thenable в методах реализации. Теперь это устарело, используйте обратные вызовы вместо этого и избегайте использования асинхронных функций для методов реализации потоков.
Эта функция привела к тому, что пользователи сталкивались с неожиданными проблемами, когда пользователь реализует функцию в стиле обратного вызова, но использует, например, асинхронный метод, который вызовет ошибку, поскольку смешение семантики промисов и обратных вызовов недопустимо.
const w = new Writable({
async final(callback) {
await someOp()
callback()
},
})
DEP0158: buffer.slice(start, end)
[История]
Версия | Изменения |
---|---|
v17.5.0, v16.15.0 | Устаревание только в документации. |
Тип: Только в документации
Этот метод устарел, потому что он несовместим с Uint8Array.prototype.slice()
, который является суперклассом Buffer
.
Используйте buffer.subarray
, который делает то же самое.
DEP0159: ERR_INVALID_CALLBACK
[История]
Версия | Изменения |
---|---|
v18.0.0 | Конец срока службы. |
Тип: Конец срока службы
Этот код ошибки был удален из-за добавления большей путаницы в ошибки, используемые для проверки типа значения.
DEP0160: process.on('multipleResolves', handler)
[История]
Версия | Изменения |
---|---|
v18.0.0 | Устаревание во время выполнения. |
v17.6.0, v16.15.0 | Устаревание только в документации. |
Тип: Во время выполнения.
Это событие устарело, потому что оно не работало с комбинаторами промисов V8, что уменьшило его полезность.
DEP0161: process._getActiveRequests()
и process._getActiveHandles()
[История]
Версия | Изменения |
---|---|
v17.6.0, v16.15.0 | Устаревание только в документации. |
Тип: Только в документации
Функции process._getActiveHandles()
и process._getActiveRequests()
не предназначены для публичного использования и могут быть удалены в будущих выпусках.
Используйте process.getActiveResourcesInfo()
, чтобы получить список типов активных ресурсов, а не фактические ссылки.
DEP0162: fs.write()
, fs.writeFileSync()
приведение к строке
[История]
Версия | Изменения |
---|---|
v19.0.0 | Конец жизни. |
v18.0.0 | Устаревание времени выполнения. |
v17.8.0, v16.15.0 | Устаревание только в документации. |
Тип: Конец жизни
Неявное приведение объектов с собственным свойством toString
, передаваемых в качестве второго параметра в fs.write()
, fs.writeFile()
, fs.appendFile()
, fs.writeFileSync()
и fs.appendFileSync()
, устарело. Преобразуйте их в примитивные строки.
DEP0163: channel.subscribe(onMessage)
, channel.unsubscribe(onMessage)
[История]
Версия | Изменения |
---|---|
v18.7.0, v16.17.0 | Устаревание только в документации. |
Тип: Только в документации
Эти методы были объявлены устаревшими, поскольку их можно использовать таким образом, что они не будут достаточно долго удерживать ссылку на канал, чтобы получать события.
Вместо этого используйте diagnostics_channel.subscribe(name, onMessage)
или diagnostics_channel.unsubscribe(name, onMessage)
, которые делают то же самое.
DEP0164: process.exit(code)
, process.exitCode
приведение к целому числу
[История]
Версия | Изменения |
---|---|
v20.0.0 | Конец жизни. |
v19.0.0 | Устаревание времени выполнения. |
v18.10.0, v16.18.0 | Устаревание только в документации приведения process.exitCode к целым числам. |
v18.7.0, v16.17.0 | Устаревание только в документации приведения process.exit(code) к целым числам. |
Тип: Конец жизни
Значения, отличные от undefined
, null
, целых чисел и целых строк (например, '1'
), устарели в качестве значения параметра code
в process.exit()
и в качестве значения для присвоения process.exitCode
.
DEP0165: --trace-atomics-wait
[История]
Версия | Изменения |
---|---|
v23.0.0 | End-of-Life. |
v22.0.0 | Устаревание во время выполнения. |
v18.8.0, v16.18.0 | Устаревание только в документации. |
Тип: End-of-Life
Флаг --trace-atomics-wait
был удален, потому что он использует V8-хук SetAtomicsWaitCallback
, который будет удален в будущем выпуске V8.
DEP0166: Двойные слэши в целях импорта и экспорта
[История]
Версия | Изменения |
---|---|
v19.0.0 | Устаревание во время выполнения. |
v18.10.0 | Устаревание только в документации с поддержкой --pending-deprecation . |
Тип: Runtime
Цели импорта и экспорта пакетов, отображаемые в пути, включающие двойной слэш (из "/" или ""), устарели и будут вызывать ошибку проверки разрешения в будущем выпуске. Это же устаревание также относится к сопоставлениям шаблонов, начинающимся или заканчивающимся слэшем.
DEP0167: Слабые экземпляры DiffieHellmanGroup
(modp1
, modp2
, modp5
)
[История]
Версия | Изменения |
---|---|
v18.10.0, v16.18.0 | Устаревание только в документации. |
Тип: Только документация
Известные группы MODP modp1
, modp2
и modp5
устарели, поскольку они не защищены от практических атак. Подробности см. в RFC 8247 Раздел 2.4.
Эти группы могут быть удалены в будущих версиях Node.js. Приложения, которые полагаются на эти группы, должны рассмотреть возможность использования более сильных групп MODP.
DEP0168: Необработанное исключение в обратных вызовах Node-API
[История]
Версия | Изменения |
---|---|
v18.3.0, v16.17.0 | Устаревание во время выполнения. |
Тип: Runtime
Неявное подавление необработанных исключений в обратных вызовах Node-API теперь устарело.
Установите флаг --force-node-api-uncaught-exceptions-policy
, чтобы заставить Node.js испустить событие 'uncaughtException'
, если исключение не обработано в обратных вызовах Node-API.
DEP0169: Небезопасный url.parse()
[История]
Версия | Изменения |
---|---|
v19.9.0, v18.17.0 | Добавлена поддержка --pending-deprecation . |
v19.0.0, v18.13.0 | Устаревание только в документации. |
Тип: Только документация (поддерживает --pending-deprecation
)
Поведение url.parse()
не стандартизировано и подвержено ошибкам, которые имеют последствия для безопасности. Используйте WHATWG URL API вместо него. CVE не выдаются для уязвимостей url.parse()
.
DEP0170: Недопустимый порт при использовании url.parse()
[История]
Версия | Изменения |
---|---|
v20.0.0 | Устаревание во время выполнения. |
v19.2.0, v18.13.0 | Устаревание только в документации. |
Тип: Время выполнения
url.parse()
принимает URL-адреса с портами, которые не являются числами. Это поведение может привести к подмене имени хоста с неожиданным вводом. Эти URL-адреса будут вызывать ошибку в будущих версиях Node.js, как это уже делает WHATWG URL API.
DEP0171: Сеттеры для заголовков и трейлеров http.IncomingMessage
[История]
Версия | Изменения |
---|---|
v19.3.0, v18.13.0 | Устаревание только в документации. |
Тип: Только документация
В будущей версии Node.js, message.headers
, message.headersDistinct
, message.trailers
и message.trailersDistinct
будут доступны только для чтения.
DEP0172: Свойство asyncResource
у функций, связанных с AsyncResource
[История]
Версия | Изменения |
---|---|
v20.0.0 | Устаревание во время выполнения. |
Тип: Время выполнения
В будущей версии Node.js свойство asyncResource
больше не будет добавляться, когда функция связана с AsyncResource
.
DEP0173: Класс assert.CallTracker
[История]
Версия | Изменения |
---|---|
v20.1.0 | Устаревание только в документации. |
Тип: Только документация
В будущей версии Node.js assert.CallTracker
будет удален. Рассмотрите возможность использования альтернатив, таких как вспомогательная функция mock
.
DEP0174: вызов promisify
для функции, возвращающей Promise
[История]
Версия | Изменения |
---|---|
v21.0.0 | Устаревание во время выполнения. |
v20.8.0 | Устаревание только в документации. |
Тип: Время выполнения
Вызов util.promisify
для функции, которая возвращает
DEP0175: util.toUSVString
[История]
Версия | Изменения |
---|---|
v20.8.0 | Устаревание только в документации. |
Тип: Только документация
API util.toUSVString()
устарел. Пожалуйста, используйте String.prototype.toWellFormed
вместо этого.
DEP0176: fs.F_OK
, fs.R_OK
, fs.W_OK
, fs.X_OK
[История]
Версия | Изменения |
---|---|
v20.8.0 | Устаревание только в документации. |
Тип: Только документация
Геттеры F_OK
, R_OK
, W_OK
и X_OK
, доступные непосредственно в node:fs
, устарели. Получайте их из fs.constants
или fs.promises.constants
вместо этого.
DEP0177: util.types.isWebAssemblyCompiledModule
[История]
Версия | Изменения |
---|---|
v21.7.0, v20.12.0 | Окончание срока службы. |
v21.3.0, v20.11.0 | Назначен код устаревания. |
v14.0.0 | Устаревание только в документации. |
Тип: Окончание срока службы
API util.types.isWebAssemblyCompiledModule
удален. Пожалуйста, используйте value instanceof WebAssembly.Module
вместо этого.
DEP0178: dirent.path
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание во время выполнения. |
v21.5.0, v20.12.0, v18.20.0 | Устаревание только в документации. |
Тип: Время выполнения
dirent.path
устарел из-за непоследовательности между строками выпуска. Пожалуйста, используйте dirent.parentPath
вместо этого.
DEP0179: Конструктор Hash
[История]
Версия | Изменения |
---|---|
v22.0.0 | Устаревание во время выполнения. |
v21.5.0, v20.12.0 | Устаревание только в документации. |
Тип: Время выполнения
Вызов класса Hash
напрямую с помощью Hash()
или new Hash()
устарел, поскольку является внутренним и не предназначен для публичного использования. Пожалуйста, используйте метод crypto.createHash()
для создания экземпляров Hash.
DEP0180: Конструктор fs.Stats
[История]
Версия | Изменения |
---|---|
v22.0.0 | Устаревание во время выполнения. |
v20.13.0 | Устаревание только в документации. |
Тип: Во время выполнения
Прямой вызов класса fs.Stats
с помощью Stats()
или new Stats()
считается устаревшим, поскольку является внутренней частью и не предназначен для публичного использования.
DEP0181: Конструктор Hmac
[История]
Версия | Изменения |
---|---|
v22.0.0 | Устаревание во время выполнения. |
v20.13.0 | Устаревание только в документации. |
Тип: Во время выполнения
Прямой вызов класса Hmac
с помощью Hmac()
или new Hmac()
считается устаревшим, поскольку является внутренней частью и не предназначен для публичного использования. Пожалуйста, используйте метод crypto.createHmac()
для создания экземпляров Hmac.
DEP0182: Короткие теги аутентификации GCM без явного authTagLength
[История]
Версия | Изменения |
---|---|
v23.0.0 | Устаревание во время выполнения. |
v20.13.0 | Устаревание только в документации. |
Тип: Во время выполнения
Приложения, которые намереваются использовать теги аутентификации, длина которых короче длины тега аутентификации по умолчанию, должны установить опцию authTagLength
функции crypto.createDecipheriv()
в соответствующую длину.
Для шифров в режиме GCM функция decipher.setAuthTag()
принимает теги аутентификации любой допустимой длины (см. DEP0090). Такое поведение считается устаревшим для лучшего соответствия рекомендациям согласно NIST SP 800-38D.
DEP0183: API на основе движка OpenSSL
[История]
Версия | Изменения |
---|---|
v22.4.0, v20.16.0 | Устаревание только в документации. |
Тип: Только в документации
В OpenSSL 3 прекращена поддержка пользовательских движков с рекомендацией перейти на новую модель провайдера. Параметр clientCertEngine
для https.request()
, tls.createSecureContext()
и tls.createServer()
; privateKeyEngine
и privateKeyIdentifier
для tls.createSecureContext()
; и crypto.setEngine()
— все зависят от этой функциональности OpenSSL.
DEP0184: Создание экземпляров классов node:zlib
без new
[История]
Версия | Изменения |
---|---|
v22.9.0, v20.18.0 | Устаревание только в документации. |
Тип: Только в документации
Создание экземпляров классов, экспортируемых модулем node:zlib
, без квалификатора new
является устаревшим. Рекомендуется использовать квалификатор new
. Это относится ко всем классам Zlib, таким как Deflate
, DeflateRaw
, Gunzip
, Inflate
, InflateRaw
, Unzip
и Zlib
.
DEP0185: Создание экземпляров классов node:repl
без new
[История]
Версия | Изменения |
---|---|
v22.9.0, v20.18.0 | Устаревание только в документации. |
Тип: Только в документации
Создание экземпляров классов, экспортируемых модулем node:repl
, без квалификатора new
является устаревшим. Рекомендуется использовать квалификатор new
. Это относится ко всем классам REPL, включая REPLServer
и Recoverable
.
DEP0187: Передача недопустимых типов аргументов в fs.existsSync
[История]
Версия | Изменения |
---|---|
v23.4.0 | Только в документации. |
Тип: Только в документации
Передача неподдерживаемых типов аргументов является устаревшей и вместо возврата false
будет вызывать ошибку в будущей версии.
DEP0188: process.features.ipv6
и process.features.uv
[История]
Версия | Изменения |
---|---|
v23.4.0 | Устаревание только в документации. |
Тип: Только в документации
Эти свойства безусловно true
. Любые проверки, основанные на этих свойствах, избыточны.
DEP0189: process.features.tls_*
[История]
Версия | Изменения |
---|---|
v23.4.0 | Устаревание только в документации. |
Тип: Только в документации
process.features.tls_alpn
, process.features.tls_ocsp
и process.features.tls_sni
устарели, поскольку их значения гарантированно идентичны значению process.features.tls
.