Spec-Zone.ru › Node.js 8 LTS

Устаревшие API

Node.js может устаревать API, когда: (a) использование API считается небезопасным, (b) доступно улучшенное альтернативное API, или (c) ожидаются изменения, нарушающие совместимость, в будущей основной версии.

Node.js использует три типа устаревания:

  • Только документация
  • Выполнение
  • Конец жизненного цикла

Устаревание только в документации — это устаревание, выраженное только в документации API Node.js. Они не создают побочных эффектов во время выполнения Node.js.

Устаревание при выполнении по умолчанию генерирует предупреждение процесса, которое будет выведено в stderr при первом использовании устаревшего API. Когда используется флаг --throw-deprecation командной строки, устаревание при выполнении вызовет ошибку.

Устаревание в конце жизненного цикла используется для идентификации кода, который был удалён или скоро будет удалён из Node.js.

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

Время от времени устаревание API может быть отменено. Такое действие может произойти как в релизе с меньшей, так и в релизе с большей версией semver. В таких ситуациях этот документ будет обновлён информацией, относящейся к этому решению. Однако идентификатор устаревания не будет изменён.

Список устаревших API

DEP0001: http.OutgoingMessage.prototype.flush

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

Метод OutgoingMessage.prototype.flush() устарел. Используйте OutgoingMessage.prototype.flushHeaders() вместо этого.

DEP0002: require('_linklist')

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

Модуль _linklist устарел. Пожалуйста, используйте альтернативный модуль.

DEP0003: _writableState.buffer

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

Свойство _writableState.buffer устарело. Используйте метод _writableState.getBuffer() вместо этого.

DEP0004: CryptoStream.prototype.readyState

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

Свойство CryptoStream.prototype.readyState устарело и не должно использоваться.

DEP0005: Конструктор Buffer()

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

Функция 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.

DEP0006: child_process options.customFds

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

В модуле child_process методы spawn(), fork(), и exec() параметр options.customFds устарел. Следует использовать параметр options.stdio.

DEP0007: cluster worker.suicide

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

В модуле cluster свойство worker.suicide устарело. Пожалуйста, используйте worker.exitedAfterDisconnect вместо этого.

DEP0008: require('constants')

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

Модуль constants устарел. При необходимости получить доступ к константам, относящимся к определённым встроенным модулям Node.js, разработчики должны вместо этого обратиться к свойству constants, экспонируемому соответствующим модулем. Например, require('fs').constants и require('os').constants.

DEP0009: crypto.pbkdf2 без digest

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

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

DEP0010: crypto.createCredentials

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

API crypto.createCredentials() устарел. Пожалуйста, используйте tls.createSecureContext() вместо этого.

DEP0011: crypto.Credentials

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

Класс crypto.Credentials устарел. Пожалуйста, используйте tls.SecureContext вместо этого.

DEP0012: Domain.dispose

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

Domain.dispose() устарел. Восстанавливайте от неудачных операций ввода-вывода явно, используя обработчики событий ошибок, заданные в домене.

DEP0013: fs асинхронная функция без обратного вызова

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

Вызов асинхронной функции без обратного вызова устарел.

DEP0014: fs.read устаревшего интерфейса строк

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

Устарел устаревший интерфейс строк fs.read(). Используйте API буфера, как указано в документации.

DEP0015: fs.readSync устаревшего интерфейса строк

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

Устарел устаревший интерфейс строк fs.readSync(). Используйте API буфера, как указано в документации.

DEP0016: GLOBAL/root

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

Псевдонимы GLOBAL и root для свойства global устарели и больше не должны использоваться.

DEP0017: Intl.v8BreakIterator

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

Intl.v8BreakIterator устарел и будет удалён или заменён в ближайшее время.

DEP0018: Необработанные отклонения обещаний

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

Необработанные отклонения обещаний устарели. В будущем отклонения обещаний, которые не обрабатываются, приведут к завершению процесса Node.js с ненулевым кодом выхода.

DEP0019: require('.') решается вне каталога

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

В некоторых случаях require('.') может разрешиться вне каталога пакета. Это поведение устарело и будет удалено в будущей основной версии Node.js.

DEP0020: Server.connections

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

Свойство Server.connections устарело. Пожалуйста, используйте метод Server.getConnections() вместо этого.

DEP0021: Server.listenFD

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

Метод Server.listenFD() устарел. Пожалуйста, используйте Server.listen({fd: <number>}) вместо этого.

DEP0022: os.tmpDir()

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

API os.tmpDir() устарел. Пожалуйста, используйте os.tmpdir() вместо этого.

DEP0023: os.getNetworkInterfaces()

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

Метод os.getNetworkInterfaces() устарел. Пожалуйста, используйте свойство os.networkInterfaces вместо этого.

DEP0024: REPLServer.prototype.convertToContext()

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

API REPLServer.prototype.convertToContext() устарел и не должен использоваться.

DEP0025: require('sys')

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

Модуль sys устарел. Пожалуйста, используйте модуль util вместо этого.

DEP0026: util.print()

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

API util.print() устарел. Пожалуйста, используйте console.log() вместо этого.

DEP0027: util.puts()

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

API util.puts() устарел. Пожалуйста, используйте console.log() вместо этого.

DEP0028: util.debug()

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

API util.debug() устарел. Пожалуйста, используйте console.error() вместо этого.

DEP0029: util.error()

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

API util.error() устарел. Пожалуйста, используйте console.error() вместо этого.

DEP0030: SlowBuffer

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

Класс SlowBuffer устарел. Пожалуйста, используйте Buffer.allocUnsafeSlow(size) вместо этого.

DEP0031: ecdh.setPublicKey()

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

Метод ecdh.setPublicKey() теперь устарел, так как его включение в API не является полезным.

DEP0032: Модуль domain

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

Модуль domain устарел и его не следует использовать.

DEP0033: EventEmitter.listenerCount()

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

API EventEmitter.listenerCount(emitter, eventName) устарел. Пожалуйста, используйте emitter.listenerCount(eventName) вместо него.

DEP0034: fs.exists(path, callback)

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

API fs.exists(path, callback) устарел. Пожалуйста, используйте fs.stat() или fs.access() вместо него.

DEP0035: fs.lchmod(path, mode, callback)

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

API fs.lchmod(path, mode, callback) устарел.

DEP0036: fs.lchmodSync(path, mode)

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

API fs.lchmodSync(path, mode) устарел.

DEP0037: fs.lchown(path, uid, gid, callback)

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

API fs.lchown(path, uid, gid, callback) устарел.

DEP0038: fs.lchownSync(path, uid, gid)

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

API fs.lchownSync(path, uid, gid) устарел.

DEP0039: require.extensions

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

Свойство require.extensions устарело.

DEP0040: punycode module

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

Модуль punycode устарел. Пожалуйста, используйте альтернативу на стороне пользователя вместо него.

DEP0041: NODE_REPL_HISTORY_FILE environment variable

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

Переменная окружения NODE_REPL_HISTORY_FILE устарела.

DEP0042: tls.CryptoStream

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

Класс tls.CryptoStream устарел. Пожалуйста, используйте tls.TLSSocket вместо него.

DEP0043: tls.SecurePair

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

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

DEP0044: util.isArray()

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

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

DEP0045: util.isBoolean()

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

API util.isBoolean() устарел.

DEP0046: util.isBuffer()

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

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

DEP0047: util.isDate()

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

API util.isDate() устарел.

DEP0048: util.isError()

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

API util.isError() устарел.

DEP0049: util.isFunction()

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

API util.isFunction() устарел.

DEP0050: util.isNull()

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

API util.isNull() устарел.

DEP0051: util.isNullOrUndefined()

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

API util.isNullOrUndefined() устарел.

DEP0052: util.isNumber()

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

API util.isNumber() устарел.

DEP0053 util.isObject()

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

API util.isObject() устарел.

DEP0054: util.isPrimitive()

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

API util.isPrimitive() устарел.

DEP0055: util.isRegExp()

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

API util.isRegExp() устарел.

DEP0056: util.isString()

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

API util.isString() устарел.

DEP0057: util.isSymbol()

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

API util.isSymbol() устарел.

DEP0058: util.isUndefined()

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

API util.isUndefined() устарел.

DEP0059: util.log()

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

API util.log() устарел.

DEP0060: util._extend()

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

API util._extend() устарел.

DEP0061: fs.SyncWriteStream

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

Класс fs.SyncWriteStream никогда не предназначался для публичного доступа. Альтернативный API недоступен. Пожалуйста, используйте альтернативу на стороне пользователя.

DEP0062: node --debug

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

--debug активирует устаревший интерфейс отладчика V8, который был удален начиная с V8 5.8. Его заменяет Инспектор, который активируется с помощью --inspect.

DEP0063: ServerResponse.prototype.writeHeader()

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

Модуль http ServerResponse.prototype.writeHeader() API устарел. Пожалуйста, используйте ServerResponse.prototype.writeHead() вместо него.

Примечание: Метод ServerResponse.prototype.writeHeader() никогда не документировался как официально поддерживаемый API.

DEP0064: tls.createSecurePair()

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

API tls.createSecurePair() устарел в документации в Node.js 0.11.3. Пользователи должны использовать tls.Socket вместо него.

DEP0065: repl.REPL_MODE_MAGIC and NODE_REPL_MODE=magic

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

Постоянная repl модуля REPL_MODE_MAGIC, используемая для опции replMode, устарела. Ее поведение функционально идентично поведению REPL_MODE_SLOPPY с момента Node.js v6.0.0, когда был импортирован V8 5.0. Пожалуйста, используйте REPL_MODE_SLOPPY вместо него.

Переменная окружения NODE_REPL_MODE используется для установки базового replMode интерактивной сессии node. Ее значение по умолчанию magic аналогичным образом устарело в пользу sloppy.

DEP0066: outgoingMessage._headers, outgoingMessage._headerNames

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

Свойства http модуля outgoingMessage._headers и outgoingMessage._headerNames устарели. Вместо этого используйте один из публичных методов (например, outgoingMessage.getHeader(), outgoingMessage.getHeaders(), outgoingMessage.getHeaderNames(), outgoingMessage.hasHeader(), outgoingMessage.removeHeader(), outgoingMessage.setHeader()) для работы с исходящими заголовками.

Примечание: outgoingMessage._headers и outgoingMessage._headerNames никогда не документировались как официально поддерживаемые свойства.

DEP0067: OutgoingMessage.prototype._renderHeaders

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

API http модуля OutgoingMessage.prototype._renderHeaders() устарел.

Примечание: OutgoingMessage.prototype._renderHeaders никогда не документировался как официально поддерживаемый API.

DEP0068: node debug

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

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

DEP0069: vm.runInDebugContext(string)

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

DbContext будет удален в V8 в ближайшее время и не будет доступен в Node 10+.

Примечание: DebugContext был экспериментальным API.

DEP0070: async_hooks.currentId()

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

async_hooks.currentId() было переименовано в async_hooks.executionAsyncId() для ясности.

Примечание: изменение было выполнено, когда async_hooks был экспериментальным API.

DEP0071: async_hooks.triggerId()

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

async_hooks.triggerId() было переименовано в async_hooks.triggerAsyncId() для ясности.

Примечание: изменение было выполнено, когда async_hooks был экспериментальным API.

DEP0072: async_hooks.AsyncResource.triggerId()

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

async_hooks.AsyncResource.triggerId() было переименовано в async_hooks.AsyncResource.triggerAsyncId() для ясности.

Примечание: изменение было выполнено, когда async_hooks был экспериментальным API.

DEP0076: tls.parseCertString()

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

tls.parseCertString() — вспомогательная функция тривиального разбора, которая была случайно сделана публичной. Эту функцию обычно можно заменить следующим:

const querystring = require('querystring');
querystring.parse(str, '\n', '=');

Примечание: Эта функция не полностью эквивалентна querystring.parse(). Одно отличие заключается в том, что querystring.parse() выполняет декодирование URL:

> querystring.parse('%E5%A5%BD=1', '\n', '=');
{ '好': '1' }
> tls.parseCertString('%E5%A5%BD=1');
{ '%E5%A5%BD': '1' }

DEP0079: Настройка функции проверки объектов через .inspect()

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

Использование свойства с именем inspect в объекте для указания пользовательской функции проверки для util.inspect() устарело. Используйте util.inspect.custom вместо него. Для обратной совместимости с Node.js до версии 6.4.0 оба варианта могут быть указаны.

DEP0085: Чувствительный API AsyncHooks

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

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

DEP0086: Удаление runInAsyncIdScope

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

runInAsyncIdScope не излучает событие before или after и может тем самым вызвать множество проблем. Для получения более подробной информации см. https://github.com/nodejs/node/issues/14328.

DEP0089: require('assert')

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

Прямой импорт assert не рекомендуется, так как экспортированные функции будут использовать нестрогие проверки равенства. Используйте require('assert').strict вместо него. API такой же, как у устаревшего assert, но он всегда будет использовать строгие проверки равенства.

DEP0098: API AsyncHooks Embedder AsyncResource.emit<Before,After>

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

Встроенный API AsyncHooks предоставляет методы emit<Before,After>, которые очень легко использовать неправильно, что может привести к необратимым ошибкам.

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

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v8.x/docs/api/deprecations.html

Spec-Zone.ru

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