Устаревшие 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с копиейarrayBuffer.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/codemapv8/tools/consarrayv8/tools/csvparserv8/tools/logreaderv8/tools/profile_viewv8/tools/profilev8/tools/SourceMapv8/tools/splaytreev8/tools/tickprocessor-driverv8/tools/tickprocessornode-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.