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