Устаревшие API¶
API Node.js могут быть признаны устаревшими по следующим причинам:
- использование API небезопасно;
- есть улучшенная альтернатива;
- ожидаются ломающие изменения в будущем мажорном релизе.
В Node.js используются четыре вида устаревания:
- только документация (documentation-only)
- приложение (только код вне
node_modules) - время выполнения (весь код)
- конец срока службы (End-of-Life)
Устаревание «только документация» отражено лишь в документации по API 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.
Устаревание End-of-Life применяют, когда функциональность уже удалена или будет удалена из Node.js вскоре.
Отмена устаревания¶
Иногда устаревание API отменяют. В таких случаях документ обновляют с учётом решения. Идентификатор устаревания при этом не меняют.
Список устаревших API¶
DEP0001: http.OutgoingMessage.prototype.flush¶
История
| Версия | Изменения |
|---|---|
| v14.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v1.6.0 | Устаревание времени выполнения. |
Тип: End-of-Life
OutgoingMessage.prototype.flush() удалён. Используйте OutgoingMessage.prototype.flushHeaders() вместо него.
DEP0002: require('_linklist')¶
История
| Версия | Изменения |
|---|---|
| v8.0.0 | Конец жизни. |
| v6.12.0 | Присвоен код устаревания. |
| v5.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Модуль _linklist устарел. Используйте альтернативу из пользовательской экосистемы.
DEP0003: _writableState.buffer¶
История
| Версия | Изменения |
|---|---|
| v14.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.15 | Устаревание времени выполнения. |
Тип: End-of-Life
_writableState.buffer удалён. Используйте _writableState.getBuffer() вместо него.
DEP0004: CryptoStream.prototype.readyState¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.4.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Свойство CryptoStream.prototype.readyState удалено.
DEP0005: Buffer() constructor¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки только документации. |
Тип: приложение (только код вне node_modules)
Функция Buffer() и конструктор new Buffer() устарели из-за проблем с удобством API, которые могут случайно приводить к проблемам безопасности.
В качестве альтернативы используйте один из следующих способов создания объектов Buffer:
Buffer.alloc(size[, fill[, encoding]]): создаётBufferс инициализированной памятью.Buffer.allocUnsafe(size): создаётBufferс неинициализированной памятью.- [
Buffer.allocUnsafeSlow(size)][]: создаётBufferс неинициализированной памятью. - [
Buffer.from(array)][]: создаётBuffer, копируяarray. Buffer.from(arrayBuffer[, byteOffset[, length]])- создаётBuffer, оборачивающий указанныйarrayBuffer.- [
Buffer.from(buffer)][]: создаётBuffer, копируяbuffer. Buffer.from(string[, encoding]): создаётBuffer, копируяstring.
Без --pending-deprecation предупреждения времени выполнения появляются только для кода вне node_modules. Это значит, что использование Buffer() внутри зависимостей не будет сопровождаться предупреждениями об устаревании. С --pending-deprecation предупреждение времени выполнения появляется независимо от того, где используется Buffer().
DEP0006: child_process options.customFds¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.14 | Устаревание времени выполнения. |
| v0.5.10 | Прекращение поддержки только документации. |
Тип: End-of-Life
В методах spawn(), fork() и exec() модуля [child_process][] параметр options.customFds устарел. Вместо него следует использовать параметр options.stdio.
DEP0007: Replace cluster worker.suicide with worker.exitedAfterDisconnect¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Конец жизни. |
| v7.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
В ранней версии модуля cluster к объекту Worker было добавлено логическое свойство suicide, чтобы отражать, как и почему завершился воркер. В Node.js 6.0.0 старое свойство объявлено устаревшим и заменено на [worker.exitedAfterDisconnect][]: старое имя плохо отражало семантику и было эмоционально окрашенным.
DEP0008: require('node:constants')¶
История
| Версия | Изменения |
|---|---|
| v6.12.0 | Присвоен код устаревания. |
| v6.3.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Модуль node:constants устарел. Если нужен доступ к константам, относящимся к конкретным встроенным модулям Node.js, следует использовать свойство constants, экспортируемое соответствующим модулем. Например, require('node:fs').constants и require('node:os').constants.
DEP0009: crypto.pbkdf2 without digest¶
История
| Версия | Изменения |
|---|---|
| v14.0.0 | Окончание срока службы (для digest === null). |
| v11.0.0 | Устаревание во время выполнения (для digest === null). |
| v8.0.0 | Окончание срока службы (для дайджеста === неопределенного). |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки во время выполнения (для digest === undefined). |
Тип: End-of-Life
Использование API [crypto.pbkdf2()][] без указания digest было объявлено устаревшим в Node.js 6.0, потому что метод по умолчанию использовал нерекомендуемый алгоритм 'SHA1'. Ранее при этом выводилось предупреждение об устаревании. Начиная с Node.js 8.0.0 вызов crypto.pbkdf2() или crypto.pbkdf2Sync() с digest, равным undefined, приводит к TypeError.
Начиная с Node.js 11.0.0 вызов этих функций с digest, равным null, также выводил предупреждение об устаревании, чтобы поведение совпадало со случаем, когда digest равен undefined.
Теперь же передача как undefined, так и null приводит к TypeError.
DEP0010: crypto.createCredentials¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.13 | Устаревание времени выполнения. |
Тип: End-of-Life
API crypto.createCredentials() удалён. Используйте [tls.createSecureContext()][] вместо него.
DEP0011: crypto.Credentials¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.13 | Устаревание времени выполнения. |
Тип: End-of-Life
Класс crypto.Credentials удалён. Используйте [tls.SecureContext][] вместо него.
DEP0012: Domain.dispose¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.7 | Устаревание времени выполнения. |
Тип: End-of-Life
Domain.dispose() удалён. Вместо этого следует явно обрабатывать ошибки неудачных операций ввода-вывода через обработчики событий ошибок, установленные на domain.
DEP0013: fs asynchronous function without callback¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v7.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Вызов асинхронной функции без callback приводит к TypeError начиная с Node.js 10.0.0. См. https://github.com/nodejs/node/pull/12562.
DEP0014: fs.read legacy String interface¶
История
| Версия | Изменения |
|---|---|
| v8.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v6.0.0 | Устаревание времени выполнения. |
| v0.1.96 | Прекращение поддержки только документации. |
Тип: End-of-Life
Устаревший String-интерфейс [fs.read()][] объявлен устаревшим. Вместо него используйте API Buffer, как указано в документации.
DEP0015: fs.readSync legacy String interface¶
История
| Версия | Изменения |
|---|---|
| v8.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v6.0.0 | Устаревание времени выполнения. |
| v0.1.96 | Прекращение поддержки только документации. |
Тип: End-of-Life
Устаревший String-интерфейс [fs.readSync()][] объявлен устаревшим. Вместо него используйте API Buffer, как указано в документации.
DEP0016: GLOBAL/root¶
История
| Версия | Изменения |
|---|---|
| v14.0.0 | Конец жизни. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Псевдонимы GLOBAL и root для свойства global были объявлены устаревшими в Node.js 6.0.0 и с тех пор удалены.
DEP0017: Intl.v8BreakIterator¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Конец жизни. |
| v7.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Intl.v8BreakIterator был нестандартным расширением и был удалён. См. Intl.Segmenter.
DEP0018: Unhandled promise rejections¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Конец жизни. |
| v7.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Необработанные отклонения промисов объявлены устаревшими. По умолчанию отклонения промисов, которые не были обработаны, завершают процесс Node.js с ненулевым кодом выхода. Чтобы изменить поведение Node.js в отношении необработанных отклонений, используйте параметр командной строки [--unhandled-rejections][].
DEP0019: require('.') resolved outside directory¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Убран функционал. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v1.8.1 | Устаревание времени выполнения. |
Тип: End-of-Life
В некоторых случаях require('.') мог разрешаться за пределы каталога пакета. Это поведение было удалено.
DEP0020: Server.connections¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Server.connections удален. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.9.7 | Устаревание времени выполнения. |
Тип: End-of-Life
Свойство Server.connections было объявлено устаревшим в Node.js 0.9.7 и затем удалено. Используйте метод [Server.getConnections()][] вместо него.
DEP0021: Server.listenFD¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.7.12 | Устаревание времени выполнения. |
Тип: End-of-Life
Метод Server.listenFD() объявлен устаревшим и удалён. Используйте [Server.listen({fd: <number>})][] вместо него.
DEP0022: os.tmpDir()¶
История
| Версия | Изменения |
|---|---|
| v14.0.0 | Конец жизни. |
| v7.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
API os.tmpDir() был объявлен устаревшим в Node.js 7.0.0 и с тех пор удалён. Используйте [os.tmpdir()][] вместо него.
Доступна автоматическая миграция (source):
1 | |
DEP0023: os.getNetworkInterfaces()¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.6.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Метод os.getNetworkInterfaces() устарел. Используйте метод [os.networkInterfaces()][] вместо него.
DEP0024: REPLServer.prototype.convertToContext()¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Конец жизни. |
| v7.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
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 | Устаревание времени выполнения. |
Тип: End-of-Life
util.print() has been removed. Please use [console.log()][] instead.
An automated migration is available (source):
1 | |
DEP0027: util.puts()¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.3 | Устаревание времени выполнения. |
Тип: End-of-Life
util.puts() has been removed. Please use [console.log()][] instead.
An automated migration is available (source):
1 | |
DEP0028: util.debug()¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.3 | Устаревание времени выполнения. |
Тип: End-of-Life
util.debug() has been removed. Please use [console.error()][] instead.
An automated migration is available (source):
1 | |
DEP0029: util.error()¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.3 | Устаревание времени выполнения. |
Тип: End-of-Life
util.error() has been removed. Please use [console.error()][] instead.
An automated migration is available (source):
1 | |
DEP0030: SlowBuffer¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v24.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Класс SlowBuffer удалён. Используйте [Buffer.allocUnsafeSlow(size)][].
Доступна автоматическая миграция (исходники).
1 | |
DEP0031: ecdh.setPublicKey()¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v5.2.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Метод [ecdh.setPublicKey()][] объявлен устаревшим: в API он не несёт пользы.
DEP0032: node:domain module¶
История
| Версия | Изменения |
|---|---|
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v1.4.2 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Модуль [domain][] устарел; использовать его не следует.
DEP0033: EventEmitter.listenerCount()¶
История
| Версия | Изменения |
|---|---|
| v25.4.0, v24.14.0 | Устаревание отменено. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v3.2.0 | Прекращение поддержки только документации. |
Тип: отменено
API [events.listenerCount(emitter, eventName)][] было устаревшим, так как дублировало [emitter.listenerCount(eventName)][]. Устаревание отменено: функция переориентирована и теперь также принимает аргументы EventTarget.
DEP0034: fs.exists(path, callback)¶
История
| Версия | Изменения |
|---|---|
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v1.0.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
API [fs.exists(path, callback)][] устарело. Используйте [fs.stat()][] или [fs.access()][].
DEP0035: fs.lchmod(path, mode, callback)¶
История
| Версия | Изменения |
|---|---|
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.4.7 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
API [fs.lchmod(path, mode, callback)][] устарело.
DEP0036: fs.lchmodSync(path, mode)¶
История
| Версия | Изменения |
|---|---|
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.4.7 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
API [fs.lchmodSync(path, mode)][] устарело.
DEP0037: fs.lchown(path, uid, gid, callback)¶
История
| Версия | Изменения |
|---|---|
| v10.6.0 | Устаревание отменено. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.4.7 | Прекращение поддержки только документации. |
Тип: устаревание отменено
API [fs.lchown(path, uid, gid, callback)][] было устаревшим. Отмена: в libuv появились необходимые возможности.
DEP0038: fs.lchownSync(path, uid, gid)¶
История
| Версия | Изменения |
|---|---|
| v10.6.0 | Устаревание отменено. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.4.7 | Прекращение поддержки только документации. |
Тип: устаревание отменено
API [fs.lchownSync(path, uid, gid)][] было устаревшим. Отмена: в libuv появились необходимые возможности.
DEP0039: require.extensions¶
История
| Версия | Изменения |
|---|---|
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.10.6 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Свойство [require.extensions][] устарело.
DEP0040: node:punycode module¶
История
| Версия | Изменения |
|---|---|
| v23.7.0, v22.14.0 | Устаревание приложения. |
| v21.0.0 | Устаревание времени выполнения. |
| v16.6.0 | Добавлена поддержка --pending-deprecation. |
| v7.0.0 | Прекращение поддержки только документации. |
Тип: приложение (только код вне node_modules)
Модуль [punycode][] устарел. Используйте альтернативу из пользовательской экосистемы.
DEP0041: NODE_REPL_HISTORY_FILE environment variable¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| 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 | Конец жизни. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v0.11.3 | Прекращение поддержки только документации. |
Тип: End-of-Life
Класс tls.CryptoStream удалён. Используйте [tls.TLSSocket][].
DEP0043: tls.SecurePair¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v8.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки только документации. |
| v0.11.15 | Устаревание отменено. |
| v0.11.3 | Устаревание времени выполнения. |
Тип: End-of-Life
The tls.SecurePair class is deprecated. Please use [tls.TLSSocket][] instead.
DEP0044: util.isArray()¶
История
| Версия | Изменения |
|---|---|
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
The [util.isArray()][] API is deprecated. Please use Array.isArray() instead.
An automated migration is available (source):
1 | |
DEP0045: util.isBoolean()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isBoolean() API has been removed. Please use typeof arg === 'boolean' instead.
An automated migration is available (source):
1 | |
DEP0046: util.isBuffer()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isBuffer() API has been removed. Please use [Buffer.isBuffer()][] instead.
An automated migration is available (source):
1 | |
DEP0047: util.isDate()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isDate() API has been removed. Please use arg instanceof Date instead.
Also for stronger approaches, consider using: Date.prototype.toString.call(arg) === '[object Date]' && !isNaN(arg). This can also be used in a try/catch block to handle invalid date objects.
An automated migration is available (source):
1 | |
DEP0048: util.isError()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isError() API has been removed. Please use Error.isError(arg).
An automated migration is available (source):
1 | |
DEP0049: util.isFunction()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isFunction() API has been removed. Please use typeof arg === 'function' instead.
An automated migration is available (source):
1 | |
DEP0050: util.isNull()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isNull() API has been removed. Please use arg === null instead.
An automated migration is available (source):
1 | |
DEP0051: util.isNullOrUndefined()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isNullOrUndefined() API has been removed. Please use arg === null || arg === undefined instead.
An automated migration is available (source):
1 | |
DEP0052: util.isNumber()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isNumber() API has been removed. Please use typeof arg === 'number' instead.
An automated migration is available (source):
1 | |
DEP0053: util.isObject()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isObject() API has been removed. Please use arg && typeof arg === 'object' instead.
An automated migration is available (source):
1 | |
DEP0054: util.isPrimitive()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isPrimitive() API has been removed. Please use Object(arg) !== arg instead.
An automated migration is available (source):
1 | |
DEP0055: util.isRegExp()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isRegExp() API has been removed. Please use arg instanceof RegExp instead.
An automated migration is available (source):
1 | |
DEP0056: util.isString()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isString() API has been removed. Please use typeof arg === 'string' instead.
An automated migration is available (source):
1 | |
DEP0057: util.isSymbol()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isSymbol() API has been removed. Please use typeof arg === 'symbol' instead.
An automated migration is available (source):
1 | |
DEP0058: util.isUndefined()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0, v4.8.6 | Присвоен код устаревания. |
| v4.0.0, v3.3.1 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.isUndefined() API has been removed. Please use arg === undefined instead.
An automated migration is available (source):
1 | |
DEP0059: util.log()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Прекращение поддержки. |
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.log() API has been removed because it's an unmaintained legacy API that was exposed to user land by accident. Instead, consider the following alternatives based on your specific needs:
-
Third-Party Logging Libraries
-
Use
console.log(new Date().toLocaleString(), message)
By adopting one of these alternatives, you can transition away from util.log() and choose a logging strategy that aligns with the specific requirements and complexity of your application.
An automated migration is available (source):
1 | |
DEP0060: util._extend()¶
История
| Версия | Изменения |
|---|---|
| v22.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
The [util._extend()][] API is deprecated because it's an unmaintained legacy API that was exposed to user land by accident. Please use target = Object.assign(target, source) instead.
An automated migration is available (source):
1 | |
DEP0061: fs.SyncWriteStream¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Конец жизни. |
| v8.0.0 | Устаревание времени выполнения. |
| v7.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The fs.SyncWriteStream class was never intended to be a publicly accessible API and has been removed. No alternative API is available. Please use a userland alternative.
DEP0062: node --debug¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v8.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
--debug activates the legacy V8 debugger interface, which was removed as of V8 5.8. It is replaced by Inspector which is activated with --inspect instead.
DEP0063: ServerResponse.prototype.writeHeader()¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Конец жизни. |
| v25.0.0 | Устаревание времени выполнения. |
| v8.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The node:http module ServerResponse.prototype.writeHeader() API is deprecated. Please use ServerResponse.prototype.writeHead() instead.
The ServerResponse.prototype.writeHeader() method was never documented as an officially supported API.
DEP0064: tls.createSecurePair()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v8.0.0 | Устаревание времени выполнения. |
| v6.12.0 | Присвоен код устаревания. |
| v6.0.0 | Прекращение поддержки только документации. |
| v0.11.15 | Устаревание отменено. |
| v0.11.3 | Устаревание времени выполнения. |
Тип: End-of-Life
The tls.createSecurePair() API was deprecated in documentation in Node.js 0.11.3. Users should use tls.Socket instead.
DEP0065: repl.REPL_MODE_MAGIC and NODE_REPL_MODE=magic¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v8.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The node:repl module's REPL_MODE_MAGIC constant, used for replMode option, has been removed. Its behavior has been functionally identical to that of REPL_MODE_SLOPPY since Node.js 6.0.0, when V8 5.0 was imported. Please use REPL_MODE_SLOPPY instead.
The NODE_REPL_MODE environment variable is used to set the underlying replMode of an interactive node session. Its value, magic, is also removed. Please use sloppy instead.
DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v12.0.0 | Устаревание времени выполнения. |
| v8.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The node:http module OutgoingMessage.prototype._headers and OutgoingMessage.prototype._headerNames properties are deprecated. Use one of the public methods (e.g. OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader()) for working with outgoing headers.
The OutgoingMessage.prototype._headers and OutgoingMessage.prototype._headerNames properties were never documented as officially supported properties.
An automated migration is available (source):
1 | |
DEP0067: OutgoingMessage.prototype._renderHeaders¶
История
| Версия | Изменения |
|---|---|
| v8.0.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The node:http module OutgoingMessage.prototype._renderHeaders() API is deprecated.
The OutgoingMessage.prototype._renderHeaders property was never documented as an officially supported API.
DEP0068: node debug¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Устаревшая команда node debug была удалена. |
| v8.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
node debug corresponds to the legacy CLI debugger which has been replaced with a V8-inspector based CLI debugger available through node inspect.
DEP0069: vm.runInDebugContext(string)¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
| v8.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
DebugContext has been removed in V8 and is not available in Node.js 10+.
DebugContext was an experimental API.
DEP0070: async_hooks.currentId()¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Конец жизни. |
| v8.2.0 | Устаревание времени выполнения. |
Тип: End-of-Life
async_hooks.currentId() was renamed to async_hooks.executionAsyncId() for clarity.
This change was made while async_hooks was an experimental API.
DEP0071: async_hooks.triggerId()¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Конец жизни. |
| v8.2.0 | Устаревание времени выполнения. |
Тип: End-of-Life
async_hooks.triggerId() was renamed to async_hooks.triggerAsyncId() for clarity.
This change was made while async_hooks was an experimental API.
DEP0072: async_hooks.AsyncResource.triggerId()¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Конец жизни. |
| v8.2.0 | Устаревание времени выполнения. |
Тип: End-of-Life
async_hooks.AsyncResource.triggerId() was renamed to async_hooks.AsyncResource.triggerAsyncId() for clarity.
This change was made while async_hooks was an experimental API.
DEP0073: Several internal properties of net.Server¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Accessing several internal, undocumented properties of net.Server instances with inappropriate names is deprecated.
As the original API was undocumented and not generally useful for non-internal code, no replacement API is provided.
DEP0074: REPLServer.bufferedCommand¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The REPLServer.bufferedCommand property was deprecated in favor of [REPLServer.clearBufferedCommand()][].
DEP0075: REPLServer.parseREPLKeyword()¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
REPLServer.parseREPLKeyword() was removed from userland visibility.
DEP0076: tls.parseCertString()¶
История
| Версия | Изменения |
|---|---|
| v18.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
| v8.6.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
tls.parseCertString() was a trivial parsing helper that was made public by mistake. While it was supposed to parse certificate subject and issuer strings, it never handled multi-value Relative Distinguished Names correctly.
Earlier versions of this document suggested using querystring.parse() as an alternative to tls.parseCertString(). However, querystring.parse() also does not handle all certificate subjects correctly and should not be used.
DEP0077: Module._debug()¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Module._debug() has been removed.
The Module._debug() function was never documented as an officially supported API.
DEP0078: REPLServer.turnOffEditorMode()¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
REPLServer.turnOffEditorMode() was removed from userland visibility.
DEP0079: Custom inspection function on objects via .inspect()¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
| v8.7.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Using a property named inspect on an object to specify a custom inspection function for [util.inspect()][] is deprecated. Use [util.inspect.custom][] instead. For backward compatibility with Node.js prior to version 6.4.0, both can be specified.
DEP0080: path._makeLong()¶
История
| Версия | Изменения |
|---|---|
| v9.0.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The internal path._makeLong() was not intended for public use. However, userland modules have found it useful. The internal API is deprecated and replaced with an identical, public path.toNamespacedPath() method.
DEP0081: fs.truncate() using a file descriptor¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
fs.truncate() fs.truncateSync() usage with a file descriptor is deprecated. Please use fs.ftruncate() or fs.ftruncateSync() to work with file descriptors.
An automated migration is available (source):
1 | |
DEP0082: REPLServer.prototype.memory()¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Конец жизни. |
| v9.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
REPLServer.prototype.memory() is only necessary for the internal mechanics of the REPLServer itself. Do not use this function.
DEP0083: Disabling ECDH by setting ecdhCurve to false¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v9.2.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The ecdhCurve option to tls.createSecureContext() and tls.TLSSocket could be set to false to disable ECDH entirely on the server only. This mode was deprecated in preparation for migrating to OpenSSL 1.1.0 and consistency with the client and is now unsupported. Use the ciphers parameter instead.
DEP0084: requiring bundled internal dependencies¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Эта функция была удалена. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Since Node.js versions 4.4.0 and 5.2.0, several modules only intended for internal usage were mistakenly exposed to user code through require(). These modules were:
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(from 7.6.0)node-inspect/lib/internal/inspect_client(from 7.6.0)node-inspect/lib/internal/inspect_repl(from 7.6.0)
The v8/* modules do not have any exports, and if not imported in a specific order would in fact throw errors. As such there are virtually no legitimate use cases for importing them through require().
On the other hand, node-inspect can be installed locally through a package manager, as it is published on the npm registry under the same name. No source code modification is necessary if that is done.
DEP0085: AsyncHooks sensitive API¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v9.4.0, v8.10.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The AsyncHooks sensitive API was never documented and had various minor issues. Use the AsyncResource API instead. See https://github.com/nodejs/node/issues/15572.
DEP0086: Remove runInAsyncIdScope¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
| v9.4.0, v8.10.0 | Устаревание времени выполнения. |
Тип: End-of-Life
runInAsyncIdScope doesn't emit the 'before' or 'after' event and can thus cause a lot of issues. See https://github.com/nodejs/node/issues/14328.
DEP0089: require('node:assert')¶
История
| Версия | Изменения |
|---|---|
| v12.8.0 | Устаревание отменено. |
| v9.9.0, v8.13.0 | Прекращение поддержки только документации. |
Тип: устаревание отменено
Importing assert directly was not recommended as the exposed functions use loose equality checks. The deprecation was revoked because use of the node:assert module is not discouraged, and the deprecation caused developer confusion.
DEP0090: Invalid GCM authentication tag lengths¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Node.js used to support all GCM authentication tag lengths which are accepted by OpenSSL when calling [decipher.setAuthTag()][]. Beginning with Node.js v11.0.0, only authentication tag lengths of 128, 120, 112, 104, 96, 64, and 32 bits are allowed. Authentication tags of other lengths are invalid per NIST SP 800-38D.
DEP0091: crypto.DEFAULT_ENCODING¶
История
| Версия | Изменения |
|---|---|
| v20.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The crypto.DEFAULT_ENCODING property only existed for compatibility with Node.js releases prior to versions 0.9.3 and has been removed.
DEP0092: Top-level this bound to module.exports¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Assigning properties to the top-level this as an alternative to module.exports is deprecated. Developers should use exports or module.exports instead.
DEP0093: crypto.fips is deprecated and replaced¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Устаревание времени выполнения. |
| v10.0.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
The [crypto.fips][] property is deprecated. Please use crypto.setFips() and crypto.getFips() instead.
An automated migration is available (source).
1 | |
DEP0094: Using assert.fail() with more than one argument¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Using assert.fail() with more than one argument is deprecated. Use assert.fail() with only one argument or use a different node:assert module method.
DEP0095: timers.enroll()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
timers.enroll() has been removed. Please use the publicly documented [setTimeout()][] or [setInterval()][] instead.
DEP0096: timers.unenroll()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
timers.unenroll() has been removed. Please use the publicly documented [clearTimeout()][] or [clearInterval()][] instead.
DEP0097: MakeCallback with domain property¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Устаревание времени выполнения. |
Тип: время выполнения (весь код)
Users of MakeCallback that add the domain property to carry context, should start using the async_context variant of MakeCallback or CallbackScope, or the high-level AsyncResource class.
DEP0098: AsyncHooks embedder AsyncResource.emitBefore and AsyncResource.emitAfter APIs¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v10.0.0, v9.6.0, v8.12.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The embedded API provided by AsyncHooks exposes .emitBefore() and .emitAfter() methods which are very easy to use incorrectly which can lead to unrecoverable errors.
Use [asyncResource.runInAsyncScope()][] API instead which provides a much safer, and more convenient, alternative. See https://github.com/nodejs/node/pull/18513.
DEP0099: Async context-unaware node::MakeCallback C++ APIs¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Устаревание во время компиляции. |
Тип: на этапе компиляции
Certain versions of node::MakeCallback APIs available to native addons are deprecated. Please use the versions of the API that accept an async_context parameter.
DEP0100: process.assert()¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
| v0.3.7 | Прекращение поддержки только документации. |
Тип: End-of-Life
process.assert() is deprecated. Please use the [assert][] module instead.
This was never a documented feature.
An automated migration is available (source).
1 | |
DEP0101: --with-lttng¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
Тип: End-of-Life
The --with-lttng compile-time option has been removed.
DEP0102: Using noAssert in Buffer#(read|write) operations¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Конец жизни. |
Тип: End-of-Life
Using the noAssert argument has no functionality anymore. All input is verified regardless of the value of noAssert. Skipping the verification could lead to hard-to-find errors and crashes.
DEP0103: process.binding('util').is[...] typechecks¶
История
| Версия | Изменения |
|---|---|
| v10.9.0 | Заменено на DEP0111. |
| v10.0.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
Using process.binding() in general should be avoided. The type checking methods in particular can be replaced by using [util.types][].
This deprecation has been superseded by the deprecation of the process.binding() API (DEP0111).
DEP0104: process.env string coercion¶
История
| Версия | Изменения |
|---|---|
| v10.0.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
When assigning a non-string property to [process.env][], the assigned value is implicitly converted to a string. This behavior is deprecated if the assigned value is not a string, boolean, or number. In the future, such assignment might result in a thrown error. Please convert the property to a string before assigning it to process.env.
DEP0105: decipher.finaltol¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
decipher.finaltol() has never been documented and was an alias for [decipher.final()][]. This API has been removed, and it is recommended to use [decipher.final()][] instead.
DEP0106: crypto.createCipher and crypto.createDecipher¶
История
| Версия | Изменения |
|---|---|
| v22.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
| v10.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
crypto.createCipher() and crypto.createDecipher() have been removed as they use a weak key derivation function (MD5 with no salt) and static initialization vectors. It is recommended to derive a key using [crypto.pbkdf2()][] or [crypto.scrypt()][] with random salts and to use [crypto.createCipheriv()][] and [crypto.createDecipheriv()][] to obtain the [Cipheriv][] and [Decipheriv][] objects respectively.
DEP0107: tls.convertNPNProtocols()¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Конец жизни. |
| v10.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
This was an undocumented helper function not intended for use outside Node.js core and obsoleted by the removal of NPN (Next Protocol Negotiation) support.
DEP0108: zlib.bytesRead¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
| v10.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Deprecated alias for [zlib.bytesWritten][]. This original name was chosen because it also made sense to interpret the value as the number of bytes read by the engine, but is inconsistent with other streams in Node.js that expose values under these names.
An automated migration is available (source):
1 | |
DEP0109: http, https, and tls support for invalid URLs¶
История
| Версия | Изменения |
|---|---|
| v16.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Some previously supported (but strictly invalid) URLs were accepted through the [http.request()][], [http.get()][], [https.request()][], [https.get()][], and [tls.checkServerIdentity()][] APIs because those were accepted by the legacy url.parse() API. The mentioned APIs now use the WHATWG URL parser that requires strictly valid URLs. Passing an invalid URL is deprecated and support will be removed in the future.
DEP0110: vm.Script cached data¶
История
| Версия | Изменения |
|---|---|
| v10.6.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The produceCachedData option is deprecated. Use [script.createCachedData()][] instead.
DEP0111: process.binding()¶
История
| Версия | Изменения |
|---|---|
| v11.12.0 | Добавлена поддержка --pending-deprecation. |
| v10.9.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
process.binding() is for use by Node.js internal code only.
While process.binding() has not reached End-of-Life status in general, it is unavailable when the permission model is enabled.
DEP0112: dgram private APIs¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The node:dgram module previously contained several APIs that were never meant to accessed outside of Node.js core: Socket.prototype._handle, Socket.prototype._receiving, Socket.prototype._bindState, Socket.prototype._queue, Socket.prototype._reuseAddr, Socket.prototype._healthCheck(), Socket.prototype._stopReceiving(), and dgram._createSocketHandle(). These have been removed.
DEP0113: Cipher.setAuthTag(), Decipher.getAuthTag()¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Cipher.setAuthTag() and Decipher.getAuthTag() are no longer available. They were never documented and would throw when called.
DEP0114: crypto._toBuf()¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The crypto._toBuf() function was not designed to be used by modules outside of Node.js core and was removed.
DEP0115: crypto.prng(), crypto.pseudoRandomBytes(), crypto.rng()¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
In recent versions of Node.js, there is no difference between [crypto.randomBytes()][] and crypto.pseudoRandomBytes(). The latter is deprecated along with the undocumented aliases crypto.prng() and crypto.rng() in favor of [crypto.randomBytes()][] and might be removed in a future release.
DEP0116: Legacy URL API¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | DEP0169 также охватывает url.format() и url.resolve(). |
| v19.0.0, v18.13.0 | DEP0169 снова объявляет устаревшим url.parse(). |
| v15.13.0, v14.17.0 | Устаревание отменено. Статус изменен на «Наследие». |
| v11.0.0 | Прекращение поддержки только документации. |
Тип: устаревание отменено
The legacy URL API is deprecated. This includes [url.format()][], [url.parse()][], [url.resolve()][], and the [legacy urlObject][]. Please use the WHATWG URL API instead.
An automated migration is available (source).
1 | |
DEP0117: Native crypto handles¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Previous versions of Node.js exposed handles to internal native objects through the _handle property of the Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign, and Verify classes. The _handle property has been removed because improper use of the native object can lead to crashing the application.
DEP0118: dns.lookup() support for a falsy host name¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Previous versions of Node.js supported dns.lookup() with a falsy host name like dns.lookup(false) due to backward compatibility. This has been removed.
DEP0119: process.binding('uv').errname() private API¶
История
| Версия | Изменения |
|---|---|
| v11.0.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
process.binding('uv').errname() is deprecated. Please use [util.getSystemErrorName()][] instead.
DEP0120: Windows Performance Counter support¶
История
| Версия | Изменения |
|---|---|
| v12.0.0 | Конец жизни. |
| v11.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Windows Performance Counter support has been removed from Node.js. The undocumented COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST(), and COUNTER_HTTP_CLIENT_RESPONSE() functions have been deprecated.
DEP0121: net._setSimultaneousAccepts()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v12.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The undocumented net._setSimultaneousAccepts() function was originally intended for debugging and performance tuning when using the node:child_process and node:cluster modules on Windows. The function is not generally useful and is being removed. See discussion here: https://github.com/nodejs/node/issues/18391
DEP0122: tls Server.prototype.setOptions()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v12.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Please use Server.prototype.setSecureContext() instead.
DEP0123: setting the TLS ServerName to an IP address¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v12.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Setting the TLS ServerName to an IP address is not permitted by RFC 6066.
DEP0124: using REPLServer.rli¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Конец жизни. |
| v12.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
This property is a reference to the instance itself.
DEP0125: require('node:_stream_wrap')¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Конец жизни. |
| v12.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The node:_stream_wrap module is deprecated.
DEP0126: timers.active()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v11.14.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The previously undocumented timers.active() has been removed. Please use the publicly documented [timeout.refresh()][] instead. If re-referencing the timeout is necessary, [timeout.ref()][] can be used with no performance impact since Node.js 10.
DEP0127: timers._unrefActive()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v11.14.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The previously undocumented and "private" timers._unrefActive() has been removed. Please use the publicly documented [timeout.refresh()][] instead. If unreferencing the timeout is necessary, [timeout.unref()][] can be used with no performance impact since Node.js 10.
DEP0128: modules with an invalid main entry and an index.js file¶
История
| Версия | Изменения |
|---|---|
| v16.0.0 | Устаревание времени выполнения. |
| v12.0.0 | Только документация. |
Тип: время выполнения (весь код)
Modules that have an invalid main entry (e.g., ./does-not-exist.js) and also have an index.js file in the top level directory will resolve the index.js file. That is deprecated and is going to throw an error in future Node.js versions.
DEP0129: ChildProcess._channel¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v13.0.0 | Устаревание времени выполнения. |
| v11.14.0 | Только документация. |
Тип: End-of-Life
The _channel property of child process objects returned by spawn() and similar functions is not intended for public use. Use ChildProcess.channel instead.
DEP0130: Module.createRequireFromPath()¶
История
| Версия | Изменения |
|---|---|
| v16.0.0 | Конец жизни. |
| v13.0.0 | Устаревание времени выполнения. |
| v12.2.0 | Только документация. |
Тип: End-of-Life
Use [module.createRequire()][] instead.
An automated migration is available (source):
1 | |
DEP0131: Legacy HTTP parser¶
История
| Версия | Изменения |
|---|---|
| v13.0.0 | Эта функция была удалена. |
| v12.22.0 | Устаревание времени выполнения. |
| v12.3.0 | Только документация. |
Тип: End-of-Life
The legacy HTTP parser, used by default in versions of Node.js prior to 12.0.0, is deprecated and has been removed in v13.0.0. Prior to v13.0.0, the --http-parser=legacy command-line flag could be used to revert to using the legacy parser.
DEP0132: worker.terminate() with callback¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v12.5.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Passing a callback to [worker.terminate()][] is deprecated. Use the returned Promise instead, or a listener to the worker's 'exit' event.
DEP0133: http connection¶
История
| Версия | Изменения |
|---|---|
| v12.12.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Prefer [response.socket][] over [response.connection][] and [request.socket][] over [request.connection][].
DEP0134: process._tickCallback¶
История
| Версия | Изменения |
|---|---|
| v12.12.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
The process._tickCallback property was never documented as an officially supported API.
DEP0135: WriteStream.open() and ReadStream.open() are internal¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v13.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
[WriteStream.open()][] and [ReadStream.open()][] are undocumented internal APIs that do not make sense to use in userland. File streams should always be opened through their corresponding factory methods [fs.createWriteStream()][] and [fs.createReadStream()][]) or by passing a file descriptor in options.
DEP0136: http finished¶
История
| Версия | Изменения |
|---|---|
| v13.4.0, v12.16.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
[response.finished][] indicates whether [response.end()][] has been called, not whether 'finish' has been emitted and the underlying data is flushed.
Use [response.writableFinished][] or [response.writableEnded][] accordingly instead to avoid the ambiguity.
To maintain existing behavior response.finished should be replaced with response.writableEnded.
DEP0137: Closing fs.FileHandle on garbage collection¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v14.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Allowing a [fs.FileHandle][] object to be closed on garbage collection used to be allowed, but now throws an error.
Please ensure that all fs.FileHandle objects are explicitly closed using FileHandle.prototype.close() when the fs.FileHandle is no longer needed:
1 2 3 4 5 6 7 8 9 10 | |
DEP0138: process.mainModule¶
История
| Версия | Изменения |
|---|---|
| v14.0.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
[process.mainModule][] is a CommonJS-only feature while process global object is shared with non-CommonJS environment. Its use within ECMAScript modules is unsupported.
It is deprecated in favor of [require.main][], because it serves the same purpose and is only available on CommonJS environment.
An automated migration is available (source):
1 | |
DEP0139: process.umask() with no arguments¶
История
| Версия | Изменения |
|---|---|
| v14.0.0, v12.19.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Calling process.umask() with no argument causes the process-wide umask to be written twice. This introduces a race condition between threads, and is a potential security vulnerability. There is no safe, cross-platform alternative API.
DEP0140: Use request.destroy() instead of request.abort()¶
История
| Версия | Изменения |
|---|---|
| v14.1.0, v13.14.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Use [request.destroy()][] instead of [request.abort()][].
DEP0141: repl.inputStream and repl.outputStream¶
История
| Версия | Изменения |
|---|---|
| v14.3.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
The node:repl module exported the input and output stream twice. Use .input instead of .inputStream and .output instead of .outputStream.
DEP0142: repl._builtinLibs¶
История
| Версия | Изменения |
|---|---|
| v14.3.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
The node:repl module exports a _builtinLibs property that contains an array of built-in modules. It was incomplete so far and instead it's better to rely upon require('node:module').builtinModules.
An automated migration is available (source):
1 | |
DEP0143: Transform._transformState¶
История
| Версия | Изменения |
|---|---|
| v15.0.0 | Конец жизни. |
| v14.5.0 | Устаревание времени выполнения. |
Тип: End-of-Life
Transform._transformState will be removed in future versions where it is no longer required due to simplification of the implementation.
DEP0144: module.parent¶
История
| Версия | Изменения |
|---|---|
| v14.6.0, v12.19.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
A CommonJS module can access the first module that required it using module.parent. This feature is deprecated because it does not work consistently in the presence of ECMAScript modules and because it gives an inaccurate representation of the CommonJS module graph.
Some modules use it to check if they are the entry point of the current process. Instead, it is recommended to compare require.main and module:
1 2 3 | |
When looking for the CommonJS modules that have required the current one, require.cache and module.children can be used:
1 2 | |
DEP0145: socket.bufferSize¶
История
| Версия | Изменения |
|---|---|
| v14.6.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
[socket.bufferSize][] is just an alias for [writable.writableLength][].
DEP0146: new crypto.Certificate()¶
История
| Версия | Изменения |
|---|---|
| v14.9.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The [crypto.Certificate() constructor][] is deprecated. Use [static methods of crypto.Certificate()][] instead.
DEP0147: fs.rmdir(path, { recursive: true })¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v16.0.0 | Устаревание времени выполнения. |
| v15.0.0 | Прекращение поддержки разрешающего поведения во время выполнения. |
| v14.14.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The fs.rmdir, fs.rmdirSync, and fs.promises.rmdir methods used to support a recursive option. That option has been removed.
Use fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) or fs.promises.rm(path, { recursive: true, force: true }) instead.
An automated migration is available (source):
1 | |
DEP0148: Folder mappings in "exports" (trailing "/")¶
История
| Версия | Изменения |
|---|---|
| v17.0.0 | Конец жизни. |
| v16.0.0 | Устаревание времени выполнения. |
| v15.1.0 | Прекращение поддержки самоссылающегося импорта во время выполнения. |
| v14.13.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Using a trailing "/" to define subpath folder mappings in the subpath exports or subpath imports fields is no longer supported. Use subpath patterns instead.
DEP0149: http.IncomingMessage#connection¶
Тип: только документация (Documentation-only)
Prefer [message.socket][] over [message.connection][].
DEP0150: Changing the value of process.config¶
История
| Версия | Изменения |
|---|---|
| v16.0.0 | Прекращение поддержки только документации. |
| v19.0.0 | Конец жизни. |
| v16.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The process.config property provides access to Node.js compile-time settings. However, the property is mutable and therefore subject to tampering. The ability to change the value will be removed in a future version of Node.js.
DEP0151: Main index lookup and extension searching¶
История
| Версия | Изменения |
|---|---|
| v16.0.0 | Устаревание времени выполнения. |
| v15.8.0, v14.18.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: время выполнения (весь код)
Previously, index.js and extension searching lookups would apply to import 'pkg' main entry point resolution, even when resolving ES modules.
With this deprecation, all ES module main entry point resolutions require an explicit ["exports" or "main" entry][] with the exact file extension.
DEP0152: Extension PerformanceEntry properties¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v16.0.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The 'gc', 'http2', and 'http' PerformanceEntry object types used to have additional properties assigned to them that provide additional information. These properties are now available within the standard detail property of the PerformanceEntry object. The deprecated accessors have been removed.
DEP0153: dns.lookup and dnsPromises.lookup options type coercion¶
История
| Версия | Изменения |
|---|---|
| v18.0.0 | Конец жизни. |
| v17.0.0 | Устаревание времени выполнения. |
| v16.8.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Using a non-nullish non-integer value for family option, a non-nullish non-number value for hints option, a non-nullish non-boolean value for all option, or a non-nullish non-boolean value for verbatim option in [dns.lookup()][] and [dnsPromises.lookup()][] throws an ERR_INVALID_ARG_TYPE error.
DEP0154: RSA-PSS generate key pair options¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v20.0.0 | Устаревание времени выполнения. |
| v16.10.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Use 'hashAlgorithm' instead of 'hash', and 'mgf1HashAlgorithm' instead of 'mgf1Hash'.
An automated migration is available (source):
1 | |
DEP0155: Trailing slashes in pattern specifier resolutions¶
История
| Версия | Изменения |
|---|---|
| v17.0.0 | Устаревание времени выполнения. |
| v16.10.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: время выполнения (весь код)
The remapping of specifiers ending in "/" like import 'pkg/x/' is deprecated for package "exports" and "imports" pattern resolutions.
DEP0156: .aborted property and 'abort', 'aborted' event in http¶
История
| Версия | Изменения |
|---|---|
| v17.0.0, v16.12.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Move to Stream API instead, as the [http.ClientRequest][], [http.ServerResponse][], and [http.IncomingMessage][] are all stream-based. Check stream.destroyed instead of the .aborted property, and listen for 'close' instead of 'abort', 'aborted' event.
The .aborted property and 'abort' event are only useful for detecting .abort() calls. For closing a request early, use the Stream .destroy([error]) then check the .destroyed property and 'close' event should have the same effect. The receiving end should also check the [readable.readableEnded][] value on [http.IncomingMessage][] to get whether it was an aborted or graceful destroy.
DEP0157: Thenable support in streams¶
История
| Версия | Изменения |
|---|---|
| v18.0.0 | Конец жизни. |
| v17.2.0, v16.14.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
An undocumented feature of Node.js streams was to support thenables in implementation methods. This is now deprecated, use callbacks instead and avoid use of async function for streams implementation methods.
This feature caused users to encounter unexpected problems where the user implements the function in callback style but uses e.g. an async method which would cause an error since mixing promise and callback semantics is not valid.
1 2 3 4 5 6 | |
DEP0158: buffer.slice(start, end)¶
История
| Версия | Изменения |
|---|---|
| v17.5.0, v16.15.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
This method was deprecated because it is not compatible with Uint8Array.prototype.slice(), which is a superclass of Buffer.
Use [buffer.subarray][] which does the same thing instead.
DEP0159: ERR_INVALID_CALLBACK¶
История
| Версия | Изменения |
|---|---|
| v18.0.0 | Конец жизни. |
Тип: End-of-Life
This error code was removed due to adding more confusion to the errors used for value type validation.
DEP0160: process.on('multipleResolves', handler)¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v18.0.0 | Устаревание времени выполнения. |
| v17.6.0, v16.15.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
This event was deprecated and removed because it did not work with V8 promise combinators which diminished its usefulness.
DEP0161: process._getActiveRequests() and process._getActiveHandles()¶
История
| Версия | Изменения |
|---|---|
| v17.6.0, v16.15.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The process._getActiveHandles() and process._getActiveRequests() functions are not intended for public use and can be removed in future releases.
Use [process.getActiveResourcesInfo()][] to get a list of types of active resources and not the actual references.
DEP0162: fs.write(), fs.writeFileSync() coercion to string¶
История
| Версия | Изменения |
|---|---|
| v19.0.0 | Конец жизни. |
| v18.0.0 | Устаревание времени выполнения. |
| v17.8.0, v16.15.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Implicit coercion of objects with own toString property, passed as second parameter in [fs.write()][], [fs.writeFile()][], [fs.appendFile()][], [fs.writeFileSync()][], and [fs.appendFileSync()][] is deprecated. Convert them to primitive strings.
DEP0163: channel.subscribe(onMessage), channel.unsubscribe(onMessage)¶
История
| Версия | Изменения |
|---|---|
| v24.8.0, v22.20.0 | Устаревание отменено. |
| v18.7.0, v16.17.0 | Прекращение поддержки только документации. |
Тип: устаревание отменено
These methods were deprecated because their use could leave the channel object vulnerable to being garbage-collected if not strongly referenced by the user. The deprecation was revoked because channel objects are now resistant to garbage collection when the channel has active subscribers.
DEP0164: process.exit(code), process.exitCode coercion to integer¶
История
| Версия | Изменения |
|---|---|
| v20.0.0 | Конец жизни. |
| v19.0.0 | Устаревание времени выполнения. |
| v18.10.0, v16.18.0 | Прекращение поддержки целочисленного приведения process.exitCode только для документации. |
| v18.7.0, v16.17.0 | Прекращение поддержки целочисленного приведения process.exit(code) только для документации. |
Тип: End-of-Life
Values other than undefined, null, integer numbers, and integer strings (e.g., '1') are deprecated as value for the code parameter in [process.exit()][] and as value to assign to [process.exitCode][].
DEP0165: --trace-atomics-wait¶
История
| Версия | Изменения |
|---|---|
| v23.0.0 | Конец жизни. |
| v22.0.0 | Устаревание времени выполнения. |
| v18.8.0, v16.18.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The --trace-atomics-wait flag has been removed because it uses the V8 hook SetAtomicsWaitCallback, that will be removed in a future V8 release.
DEP0166: Double slashes in imports and exports targets¶
История
| Версия | Изменения |
|---|---|
| v19.0.0 | Устаревание времени выполнения. |
| v18.10.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: время выполнения (весь код)
Package imports and exports targets mapping into paths including a double slash (of "/" or "\") are deprecated and will fail with a resolution validation error in a future release. This same deprecation also applies to pattern matches starting or ending in a slash.
DEP0167: Weak DiffieHellmanGroup instances (modp1, modp2, modp5)¶
История
| Версия | Изменения |
|---|---|
| v18.10.0, v16.18.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The well-known MODP groups modp1, modp2, and modp5 are deprecated because they are not secure against practical attacks. See RFC 8247 Section 2.4 for details.
These groups might be removed in future versions of Node.js. Applications that rely on these groups should evaluate using stronger MODP groups instead.
DEP0168: Unhandled exception in Node-API callbacks¶
История
| Версия | Изменения |
|---|---|
| v18.3.0, v16.17.0 | Устаревание времени выполнения. |
Тип: время выполнения (весь код)
The implicit suppression of uncaught exceptions in Node-API callbacks is now deprecated.
Set the flag [--force-node-api-uncaught-exceptions-policy][] to force Node.js to emit an ['uncaughtException'][] event if the exception is not handled in Node-API callbacks.
DEP0169: Insecure url.parse()¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Устаревание приложения. |
| v19.9.0, v18.17.0 | Добавлена поддержка --pending-deprecation. |
| v19.0.0, v18.13.0 | Прекращение поддержки только документации. |
Тип: приложение (только код вне node_modules)
[url.parse()][] behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for url.parse() vulnerabilities.
Calling [url.format(urlString)][] or [url.resolve()][] invokes url.parse() internally, and is therefore also covered by this deprecation.
DEP0170: Invalid port when using url.parse()¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v20.0.0 | Устаревание времени выполнения. |
| v19.2.0, v18.13.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
[url.parse()][] used to accept URLs with ports that are not numbers. This behavior might result in host name spoofing with unexpected input. These URLs will throw an error (which the WHATWG URL API also does).
DEP0171: Setters for http.IncomingMessage headers and trailers¶
История
| Версия | Изменения |
|---|---|
| v19.3.0, v18.13.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
In a future version of Node.js, [message.headers][], [message.headersDistinct][], [message.trailers][], and [message.trailersDistinct][] will be read-only.
DEP0172: The asyncResource property of AsyncResource bound functions¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v20.0.0 | Устаревание во время выполнения. |
Тип: End-of-Life
Older versions of Node.js would add the asyncResource when a function is bound to an AsyncResource. It no longer does.
DEP0173: the assert.CallTracker class¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v20.1.0 | Устаревание времени выполнения. |
Тип: End-of-Life
The assert.CallTracker API has been removed.
DEP0174: calling promisify on a function that returns a Promise¶
История
| Версия | Изменения |
|---|---|
| v21.0.0 | Устаревание времени выполнения. |
| v20.8.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Calling [util.promisify][] on a function that returns a Promise will ignore the result of said promise, which can lead to unhandled promise rejections.
DEP0175: util.toUSVString¶
История
| Версия | Изменения |
|---|---|
| v20.8.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The [util.toUSVString()][] API is deprecated. Please use [String.prototype.toWellFormed][] instead.
DEP0176: fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v24.0.0 | Устаревание времени выполнения. |
| v20.8.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
F_OK, R_OK, W_OK and X_OK getters exposed directly on node:fs were removed. Get them from fs.constants or fs.promises.constants instead.
An automated migration is available (source):
1 | |
DEP0177: util.types.isWebAssemblyCompiledModule¶
История
| Версия | Изменения |
|---|---|
| v21.7.0, v20.12.0 | Конец жизни. |
| v21.3.0, v20.11.0 | Присвоен код устаревания. |
| v14.0.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The util.types.isWebAssemblyCompiledModule API has been removed. Please use value instanceof WebAssembly.Module instead.
DEP0178: dirent.path¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Конец жизни. |
| v23.0.0 | Устаревание времени выполнения. |
| v21.5.0, v20.12.0, v18.20.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
The dirent.path property has been removed due to its lack of consistency across release lines. Please use [dirent.parentPath][] instead.
An automated migration is available (source):
1 | |
DEP0179: Hash constructor¶
История
| Версия | Изменения |
|---|---|
| v22.0.0 | Устаревание времени выполнения. |
| v21.5.0, v20.12.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Calling Hash class directly with Hash() or new Hash() is deprecated due to being internals, not intended for public use. Please use the [crypto.createHash()][] method to create Hash instances.
DEP0180: fs.Stats constructor¶
История
| Версия | Изменения |
|---|---|
| v22.0.0 | Устаревание времени выполнения. |
| v20.13.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Calling fs.Stats class directly with Stats() or new Stats() is deprecated due to being internals, not intended for public use.
DEP0181: Hmac constructor¶
История
| Версия | Изменения |
|---|---|
| v22.0.0 | Устаревание времени выполнения. |
| v20.13.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Calling Hmac class directly with Hmac() or new Hmac() is deprecated due to being internals, not intended for public use. Please use the [crypto.createHmac()][] method to create Hmac instances.
DEP0182: Short GCM authentication tags without explicit authTagLength¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Конец жизни. |
| v23.0.0 | Устаревание времени выполнения. |
| v20.13.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
For ciphers in GCM mode, the [decipher.setAuthTag()][] function used to accept authentication tags of any valid length (see also DEP0090). This exception has been removed to better align with recommendations per NIST SP 800-38D, and applications that intend to use authentication tags that are shorter than the default authentication tag length (i.e., shorter than 16 bytes for AES-GCM) must explicitly set the authTagLength option of the [crypto.createDecipheriv()][] function to the appropriate length.
DEP0183: OpenSSL engine-based APIs¶
История
| Версия | Изменения |
|---|---|
| v22.4.0, v20.16.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
OpenSSL 3 has deprecated support for custom engines with a recommendation to switch to its new provider model. The clientCertEngine option for https.request(), [tls.createSecureContext()][], and [tls.createServer()][]; the privateKeyEngine and privateKeyIdentifier for [tls.createSecureContext()][]; and [crypto.setEngine()][] all depend on this functionality from OpenSSL.
DEP0184: Instantiating node:zlib classes without new¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Устаревание времени выполнения. |
| v22.9.0, v20.18.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Instantiating classes without the new qualifier exported by the node:zlib module is deprecated. It is recommended to use the new qualifier instead. This applies to all Zlib classes, such as Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip, and Zlib.
DEP0185: Instantiating node:repl classes without new¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Конец жизни. |
| v24.0.0 | Устаревание времени выполнения. |
| v22.9.0, v20.18.0 | Прекращение поддержки только документации. |
Тип: End-of-Life
Instantiating classes without the new qualifier exported by the node:repl module is deprecated. The new qualifier must be used instead. This applies to all REPL classes, including REPLServer and Recoverable.
An automated migration is available (source):
1 | |
DEP0187: Passing invalid argument types to fs.existsSync¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Устаревание времени выполнения. |
| v23.4.0, v22.13.0, v20.19.3 | Только документация. |
Тип: время выполнения (весь код)
Passing non-supported argument types is deprecated and, instead of returning false, will throw an error in a future version.
DEP0188: process.features.ipv6 and process.features.uv¶
История
| Версия | Изменения |
|---|---|
| v23.4.0, v22.13.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
These properties are unconditionally true. Any checks based on these properties are redundant.
DEP0189: process.features.tls_*¶
История
| Версия | Изменения |
|---|---|
| v23.4.0, v22.13.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
process.features.tls_alpn, process.features.tls_ocsp, and process.features.tls_sni are deprecated, as their values are guaranteed to be identical to that of process.features.tls.
DEP0190: Passing args to node:child_process execFile/spawn with shell option¶
История
| Версия | Изменения |
|---|---|
| v24.0.0 | Устаревание времени выполнения. |
| v23.11.0, v22.15.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
When an args array is passed to [child_process.execFile][] or [child_process.spawn][] with the option { shell: true } or { shell: '/path/to/shell' }, the values are not escaped, only space-separated, which can lead to shell injection.
DEP0191: repl.builtinModules¶
История
| Версия | Изменения |
|---|---|
| v24.0.0, v22.16.0 | Устаревшая версия только для документации с поддержкой --pending-deprecation. |
Тип: только документация (Documentation-only) (supports [--pending-deprecation][])
The node:repl module exports a builtinModules property that contains an array of built-in modules. This was incomplete and matched the already deprecated repl._builtinLibs (DEP0142) instead it's better to rely upon require('node:module').builtinModules.
An automated migration is available (source):
1 | |
DEP0192: require('node:_tls_common') and require('node:_tls_wrap')¶
История
| Версия | Изменения |
|---|---|
| v24.2.0, v22.17.0, v20.19.6 | Устаревание времени выполнения. |
Тип: время выполнения (весь код)
The node:_tls_common and node:_tls_wrap modules are deprecated as they should be considered an internal nodejs implementation rather than a public facing API, use node:tls instead.
DEP0193: require('node:_stream_*')¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Конец жизни. |
| v24.2.0, v22.17.0, v20.19.6 | Устаревание времени выполнения. |
Тип: End-of-Life
The node:_stream_duplex, node:_stream_passthrough, node:_stream_readable, node:_stream_transform, node:_stream_wrap and node:_stream_writable modules are deprecated as they should be considered an internal nodejs implementation rather than a public facing API, use node:stream instead.
DEP0194: HTTP/2 priority signaling¶
История
| Версия | Изменения |
|---|---|
| v24.2.0 | Конец жизни. |
| v24.2.0, v22.17.0, v20.19.6 | Прекращение поддержки только документации. |
Тип: End-of-Life
The support for priority signaling has been removed following its deprecation in the RFC 9113.
DEP0195: Instantiating node:http classes without new¶
История
| Версия | Изменения |
|---|---|
| v24.2.0, v22.17.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Instantiating classes without the new qualifier exported by the node:http module is deprecated. It is recommended to use the new qualifier instead. This applies to all http classes, such as OutgoingMessage, IncomingMessage, ServerResponse and ClientRequest.
An automated migration is available (source):
1 | |
DEP0196: Calling node:child_process functions with options.shell as an empty string¶
История
| Версия | Изменения |
|---|---|
| v24.2.0, v22.17.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Calling the process-spawning functions with { shell: '' } is almost certainly unintentional, and can cause aberrant behavior.
To make [child_process.execFile][] or [child_process.spawn][] invoke the default shell, use { shell: true }. If the intention is not to invoke a shell (default behavior), either omit the shell option, or set it to false or a nullish value.
To make [child_process.exec][] invoke the default shell, either omit the shell option, or set it to a nullish value. If the intention is not to invoke a shell, use [child_process.execFile][] instead.
DEP0197: util.types.isNativeError()¶
История
| Версия | Изменения |
|---|---|
| v24.2.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The [util.types.isNativeError][] API is deprecated. Please use [Error.isError][] instead.
An automated migration is available (source):
1 | |
DEP0198: Creating SHAKE-128 and SHAKE-256 digests without an explicit options.outputLength¶
История
| Версия | Изменения |
|---|---|
| v25.0.0 | Устаревание времени выполнения. |
| v24.4.0, v22.18.0, v20.19.5 | Прекращение поддержки только документации с поддержкой --pending-deprecation. |
Тип: время выполнения (весь код)
Creating SHAKE-128 and SHAKE-256 digests without an explicit options.outputLength is deprecated.
DEP0199: require('node:_http_*')¶
История
| Версия | Изменения |
|---|---|
| v24.6.0, v22.19.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The node:_http_agent, node:_http_client, node:_http_common, node:_http_incoming, node:_http_outgoing and node:_http_server modules are deprecated as they should be considered an internal nodejs implementation rather than a public facing API, use node:http instead.
DEP0200: Closing fs.Dir on garbage collection¶
История
| Версия | Изменения |
|---|---|
| v24.9.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
Allowing a [fs.Dir][] object to be closed on garbage collection is deprecated. In the future, doing so might result in a thrown error that will terminate the process.
Please ensure that all fs.Dir objects are explicitly closed using Dir.prototype.close() or using keyword:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
DEP0201: Passing options.type to Duplex.toWeb()¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Устаревание времени выполнения. |
| v25.7.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Passing the type option to [Duplex.toWeb()][] is deprecated. To specify the type of the readable half of the constructed readable-writable pair, use the readableType option instead.
DEP0202: Http1IncomingMessage and Http1ServerResponse options of HTTP/2 servers¶
История
| Версия | Изменения |
|---|---|
| v25.7.0 | Прекращение поддержки только документации. |
Тип: только документация (Documentation-only)
The Http1IncomingMessage and Http1ServerResponse options of [http2.createServer()][] and [http2.createSecureServer()][] are deprecated. Use http1Options.IncomingMessage and http1Options.ServerResponse instead.
1 2 3 4 5 6 | |
1 2 3 4 5 6 7 8 | |
DEP0203: Passing CryptoKey to node:crypto APIs¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Устаревание времени выполнения. |
| v25.9.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Passing a [CryptoKey][] to node:crypto functions is deprecated and will throw an error in a future version. This includes [crypto.createPublicKey()][], [crypto.createPrivateKey()][], [crypto.sign()][], [crypto.verify()][], [crypto.publicEncrypt()][], [crypto.publicDecrypt()][], [crypto.privateEncrypt()][], [crypto.privateDecrypt()][], [Sign.prototype.sign()][], [Verify.prototype.verify()][], [crypto.createHmac()][], [crypto.createCipheriv()][], [crypto.createDecipheriv()][], [crypto.encapsulate()][], and [crypto.decapsulate()][].
DEP0204: KeyObject.from() with non-extractable CryptoKey¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Устаревание времени выполнения. |
| v25.9.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
Passing a non-extractable [CryptoKey][] to [KeyObject.from()][] is deprecated and will throw an error in a future version.
DEP0205: module.register()¶
История
| Версия | Изменения |
|---|---|
| REPLACEME | Устаревание времени выполнения. |
| v25.9.0 | Прекращение поддержки только документации. |
Тип: время выполнения (весь код)
[module.register()][] is deprecated. Use [module.registerHooks()][] instead.
The module.register() API provides off-thread async hooks for customizing ES modules; the module.registerHooks() API provides similar hooks that are synchronous, in-thread, and work for all types of modules. Supporting async hooks has proven to be complex, involving worker threads orchestration, and there are issues that have proven unresolveable. See caveats of asynchronous customization hooks. Please migrate to module.registerHooks() as soon as possible as module.register() will be removed in a future version of Node.js.