Skip to content

APIs Obsoletas

Las APIs de Node.js pueden quedar obsoletas por cualquiera de las siguientes razones:

  • El uso de la API no es seguro.
  • Existe una API alternativa mejorada.
  • Se esperan cambios importantes en la API en una futura versión principal.

Node.js utiliza cuatro tipos de obsolescencia:

  • Solo en la documentación
  • Aplicación (solo código que no es node_modules)
  • Tiempo de ejecución (todo el código)
  • Fin de vida útil

Una obsolescencia solo en la documentación es aquella que se expresa únicamente en la documentación de la API de Node.js. Estas no generan efectos secundarios al ejecutar Node.js. Algunas obsolescencias solo en la documentación activan una advertencia en tiempo de ejecución cuando se inician con el indicador --pending-deprecation (o su alternativa, la variable de entorno NODE_PENDING_DEPRECATION=1), de forma similar a las obsolescencias en tiempo de ejecución que se describen a continuación. Las obsolescencias solo en la documentación que admiten ese indicador se etiquetan explícitamente como tales en la lista de APIs Obsoletas.

Una obsolescencia de aplicación solo para código que no es node_modules generará, de forma predeterminada, una advertencia de proceso que se imprimirá en stderr la primera vez que la API obsoleta se utilice en código que no se carga desde node_modules. Cuando se utiliza el indicador de línea de comandos --throw-deprecation, una obsolescencia en tiempo de ejecución provocará que se lance un error. Cuando se utiliza --pending-deprecation, también se emitirán advertencias para el código cargado desde node_modules.

Una obsolescencia en tiempo de ejecución para todo el código es similar a la obsolescencia en tiempo de ejecución para código que no es node_modules, excepto que también emite una advertencia para el código cargado desde node_modules.

Una obsolescencia de fin de vida útil se utiliza cuando una funcionalidad se elimina o se eliminará pronto de Node.js.

Revocación de obsolescencias

Ocasionalmente, la obsolescencia de una API podría revertirse. En tales situaciones, este documento se actualizará con información relevante para la decisión. Sin embargo, el identificador de obsolescencia no se modificará.

Lista de APIs obsoletas

DEP0001: http.OutgoingMessage.prototype.flush

[Historial]

VersiónCambios
v14.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v1.6.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

OutgoingMessage.prototype.flush() ha sido eliminada. Utilice OutgoingMessage.prototype.flushHeaders() en su lugar.

[Historial]

VersiónCambios
v8.0.0Fin de vida útil.
v6.12.0Se ha asignado un código de obsolescencia.
v5.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

El módulo _linklist está obsoleto. Por favor, utilice una alternativa de espacio de usuario.

DEP0003: _writableState.buffer

[Historial]

VersiónCambios
v14.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.15Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Se ha eliminado _writableState.buffer. Use _writableState.getBuffer() en su lugar.

DEP0004: CryptoStream.prototype.readyState

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.4.0Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

Se eliminó la propiedad CryptoStream.prototype.readyState.

DEP0005: Constructor Buffer()

[Historial]

VersiónCambios
v10.0.0Obsolescencia en tiempo de ejecución.
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Obsolescencia solo en la documentación.

Tipo: Aplicación (solo código que no sea node_modules)

La función Buffer() y el constructor new Buffer() están obsoletos debido a problemas de usabilidad de la API que pueden provocar problemas de seguridad accidentales.

Como alternativa, utilice uno de los siguientes métodos para construir objetos Buffer:

Sin --pending-deprecation, las advertencias de tiempo de ejecución solo ocurren para el código que no está en node_modules. Esto significa que no habrá advertencias de obsolescencia para el uso de Buffer() en las dependencias. Con --pending-deprecation, se produce una advertencia de tiempo de ejecución sin importar dónde ocurra el uso de Buffer().

DEP0006: child_process options.customFds

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.14Obsolescencia en tiempo de ejecución.
v0.5.10Obsolescencia solo de documentación.

Tipo: Fin de vida útil

Dentro de los métodos spawn(), fork() y exec() del módulo child_process, la opción options.customFds está obsoleta. En su lugar, se debe utilizar la opción options.stdio.

DEP0007: Reemplace cluster worker.suicide con worker.exitedAfterDisconnect

[Historial]

VersiónCambios
v9.0.0Fin de vida útil.
v7.0.0Obsolescencia en tiempo de ejecución.
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Obsolescencia solo de documentación.

Tipo: Fin de vida útil

En una versión anterior del cluster de Node.js, se añadió una propiedad booleana con el nombre suicide al objeto Worker. La intención de esta propiedad era proporcionar una indicación de cómo y por qué salió la instancia Worker. En Node.js 6.0.0, la propiedad antigua se consideró obsoleta y se sustituyó por una nueva propiedad worker.exitedAfterDisconnect. El nombre de la propiedad antigua no describía con precisión la semántica real y estaba innecesariamente cargado de emoción.

DEP0008: require('node:constants')

[Historial]

VersiónCambios
v6.12.0Se ha asignado un código de obsolescencia.
v6.3.0Obsolescencia solo de documentación.

Tipo: Solo documentación

El módulo node:constants está obsoleto. Cuando se requiere acceso a constantes relevantes para módulos integrados específicos de Node.js, los desarrolladores deben consultar la propiedad constants expuesta por el módulo correspondiente. Por ejemplo, require('node:fs').constants y require('node:os').constants.

DEP0009: crypto.pbkdf2 sin digest

[Historial]

VersiónCambios
v14.0.0Fin de vida útil (para digest === null).
v11.0.0Obsolescencia en tiempo de ejecución (para digest === null).
v8.0.0Fin de vida útil (para digest === undefined).
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Obsolescencia en tiempo de ejecución (para digest === undefined).

Tipo: Fin de vida útil

El uso de la API crypto.pbkdf2() sin especificar un digest quedó obsoleto en Node.js 6.0 porque el método predeterminaba el uso del digest 'SHA1', que no se recomienda. Anteriormente, se imprimía una advertencia de obsolescencia. A partir de Node.js 8.0.0, llamar a crypto.pbkdf2() o crypto.pbkdf2Sync() con digest establecido en undefined lanzará un TypeError.

A partir de Node.js v11.0.0, llamar a estas funciones con digest establecido en null imprimiría una advertencia de obsolescencia para alinearse con el comportamiento cuando digest es undefined.

Ahora, sin embargo, pasar undefined o null lanzará un TypeError.

DEP0010: crypto.createCredentials

[Historial]

VersiónCambios
v11.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.13Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

La API crypto.createCredentials() fue eliminada. Por favor, use tls.createSecureContext() en su lugar.

DEP0011: crypto.Credentials

[Historial]

VersiónCambios
v11.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.13Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

La clase crypto.Credentials fue eliminada. Por favor, use tls.SecureContext en su lugar.

DEP0012: Domain.dispose

[Historial]

VersiónCambios
v9.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.7Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Domain.dispose() ha sido eliminada. Recupérese de acciones de E/S fallidas explícitamente a través de controladores de eventos de error establecidos en el dominio en su lugar.

DEP0013: Función asíncrona fs sin callback

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.
v7.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Llamar a una función asíncrona sin un callback lanza un TypeError en Node.js 10.0.0 en adelante. Vea https://github.com/nodejs/node/pull/12562.

DEP0014: Interfaz String heredada de fs.read

[Historial]

VersiónCambios
v8.0.0Fin de vida útil.
v6.0.0Obsolescencia en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.1.96Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

La interfaz String heredada de fs.read() está obsoleta. Use la API Buffer como se menciona en la documentación en su lugar.

DEP0015: Interfaz String heredada de fs.readSync

[Historial]

VersiónCambios
v8.0.0Fin de vida útil.
v6.0.0Obsolescencia en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.1.96Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

La interfaz String heredada de fs.readSync() está obsoleta. Use la API Buffer como se menciona en la documentación en su lugar.

DEP0016: GLOBAL/root

[Historial]

VersiónCambios
v14.0.0Fin de vida útil.
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Los alias GLOBAL y root para la propiedad global quedaron obsoletos en Node.js 6.0.0 y desde entonces se han eliminado.

DEP0017: Intl.v8BreakIterator

[Historial]

VersiónCambios
v9.0.0Fin de vida útil.
v7.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Intl.v8BreakIterator era una extensión no estándar y se ha eliminado. Ver Intl.Segmenter.

DEP0018: Rechazos de promesa no manejados

[Historial]

VersiónCambios
v15.0.0Fin de vida útil.
v7.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Los rechazos de promesa no manejados están obsoletos. De forma predeterminada, los rechazos de promesa que no se manejan terminan el proceso de Node.js con un código de salida distinto de cero. Para cambiar la forma en que Node.js trata los rechazos no manejados, use la opción de línea de comandos --unhandled-rejections.

DEP0019: require('.') resuelto fuera del directorio

[Historial]

VersiónCambios
v12.0.0Funcionalidad eliminada.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v1.8.1Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

En ciertos casos, require('.') podría resolverse fuera del directorio del paquete. Este comportamiento ha sido eliminado.

DEP0020: Server.connections

[Historial]

VersiónCambios
v15.0.0Server.connections ha sido eliminado.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.9.7Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

La propiedad Server.connections quedó obsoleta en Node.js v0.9.7 y se ha eliminado. Utilice el método Server.getConnections() en su lugar.

DEP0021: Server.listenFD

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.7.12Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

El método Server.listenFD() quedó obsoleto y se eliminó. Utilice Server.listen({fd: \<number\>}) en su lugar.

DEP0022: os.tmpDir()

[Historial]

VersiónCambios
v14.0.0Fin de vida útil.
v7.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

La API os.tmpDir() quedó obsoleta en Node.js 7.0.0 y desde entonces ha sido eliminada. Por favor, use os.tmpdir() en su lugar.

DEP0023: os.getNetworkInterfaces()

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.6.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

El método os.getNetworkInterfaces() está obsoleto. Por favor, use el método os.networkInterfaces() en su lugar.

DEP0024: REPLServer.prototype.convertToContext()

[Historial]

VersiónCambios
v9.0.0Fin de vida útil.
v7.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

La API REPLServer.prototype.convertToContext() ha sido eliminada.

DEP0025: require('node:sys')

[Historial]

VersiónCambios
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v1.0.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

El módulo node:sys está obsoleto. Por favor, use el módulo util en su lugar.

DEP0026: util.print()

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.3Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

util.print() ha sido eliminado. Por favor, use console.log() en su lugar.

DEP0027: util.puts()

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.3Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

util.puts() ha sido eliminado. Por favor, use console.log() en su lugar.

DEP0028: util.debug()

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.3Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

util.debug() ha sido eliminado. Por favor, use console.error() en su lugar.

DEP0029: util.error()

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.3Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

util.error() ha sido eliminado. Por favor, utilice console.error() en su lugar.

DEP0030: SlowBuffer

[Historial]

VersiónCambios
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Obsolescencia solo en la documentación.

Tipo: Solo en la documentación

La clase SlowBuffer está obsoleta. Por favor, utilice Buffer.allocUnsafeSlow(size) en su lugar.

DEP0031: ecdh.setPublicKey()

[Historial]

VersiónCambios
v6.12.0Se ha asignado un código de obsolescencia.
v5.2.0Obsolescencia solo en la documentación.

Tipo: Solo en la documentación

El método ecdh.setPublicKey() ahora está obsoleto ya que su inclusión en la API no es útil.

DEP0032: Módulo node:domain

[Historial]

VersiónCambios
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v1.4.2Obsolescencia solo en la documentación.

Tipo: Solo en la documentación

El módulo domain está obsoleto y no debe utilizarse.

DEP0033: EventEmitter.listenerCount()

[Historial]

VersiónCambios
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v3.2.0Obsolescencia solo en la documentación.

Tipo: Solo en la documentación

La API events.listenerCount(emitter, eventName) está obsoleta. Por favor, utilice emitter.listenerCount(eventName) en su lugar.

DEP0034: fs.exists(path, callback)

[Historial]

VersiónCambios
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v1.0.0Obsolescencia solo en la documentación.

Tipo: Solo en la documentación

La API fs.exists(path, callback) está obsoleta. Por favor, utilice fs.stat() o fs.access() en su lugar.

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

[Historial]

VersiónCambios
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.4.7Obsoleto solo en documentación.

Tipo: Solo en documentación

La API fs.lchmod(path, mode, callback) está obsoleta.

DEP0036: fs.lchmodSync(path, mode)

[Historial]

VersiónCambios
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.4.7Obsoleto solo en documentación.

Tipo: Solo en documentación

La API fs.lchmodSync(path, mode) está obsoleta.

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

[Historial]

VersiónCambios
v10.6.0Obsolecencia revocada.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.4.7Obsoleto solo en documentación.

Tipo: Obsolecencia revocada

La API fs.lchown(path, uid, gid, callback) estaba obsoleta. La obsolescencia fue revocada porque las API de soporte necesarias fueron agregadas en libuv.

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

[Historial]

VersiónCambios
v10.6.0Obsolecencia revocada.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.4.7Obsoleto solo en documentación.

Tipo: Obsolecencia revocada

La API fs.lchownSync(path, uid, gid) estaba obsoleta. La obsolescencia fue revocada porque las API de soporte necesarias fueron agregadas en libuv.

DEP0039: require.extensions

[Historial]

VersiónCambios
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.10.6Obsoleto solo en documentación.

Tipo: Solo en documentación

La propiedad require.extensions está obsoleta.

DEP0040: módulo node:punycode

[Historial]

VersiónCambios
v21.0.0Obsolecencia en tiempo de ejecución.
v16.6.0Se añadió soporte para --pending-deprecation.
v7.0.0Obsoleto solo en documentación.

Tipo: Tiempo de ejecución

El módulo punycode está obsoleto. Por favor, use una alternativa userland en su lugar.

DEP0041: Variable de entorno NODE_REPL_HISTORY_FILE

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v3.0.0Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

Se eliminó la variable de entorno NODE_REPL_HISTORY_FILE. Por favor, use NODE_REPL_HISTORY en su lugar.

DEP0042: tls.CryptoStream

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v0.11.3Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

Se eliminó la clase tls.CryptoStream. Por favor, use tls.TLSSocket en su lugar.

DEP0043: tls.SecurePair

[Historial]

VersiónCambios
v8.0.0Obsolescencia en tiempo de ejecución.
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Obsolescencia solo en la documentación.
v0.11.15Obsolescencia revocada.
v0.11.3Obsolescencia en tiempo de ejecución.

Tipo: Solo en la documentación

La clase tls.SecurePair está obsoleta. Por favor, use tls.TLSSocket en su lugar.

DEP0044: util.isArray()

[Historial]

VersiónCambios
v22.0.0Obsolescencia en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v4.0.0, v3.3.1Obsolescencia solo en la documentación.

Tipo: Tiempo de ejecución

La API util.isArray() está obsoleta. Por favor, use Array.isArray() en su lugar.

DEP0045: util.isBoolean()

[Historial]

VersiónCambios
v23.0.0Obsolescencia de fin de vida útil.
v22.0.0Obsolescencia en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v4.0.0, v3.3.1Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

Se ha eliminado la API util.isBoolean(). Por favor, use typeof arg === 'boolean' en su lugar.

DEP0046: util.isBuffer()

[Historial]

VersiónCambios
v23.0.0Obsolescencia de fin de vida útil.
v22.0.0Obsolescencia en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v4.0.0, v3.3.1Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

Se ha eliminado la API util.isBuffer(). Por favor, use Buffer.isBuffer() en su lugar.

DEP0047: util.isDate()

[Historial]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isDate() ha sido eliminada. Por favor, use arg instanceof Date en su lugar.

DEP0048: util.isError()

[Historial]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isError() ha sido eliminada. Por favor, use Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error en su lugar.

DEP0049: util.isFunction()

[Historial]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isFunction() ha sido eliminada. Por favor, use typeof arg === 'function' en su lugar.

DEP0050: util.isNull()

[Historial]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isNull() ha sido eliminada. Por favor, use arg === null en su lugar.

DEP0051: util.isNullOrUndefined()

[Historial]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isNullOrUndefined() ha sido eliminada. Por favor, use arg === null || arg === undefined en su lugar.

DEP0052: util.isNumber()

[Historia]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isNumber() ha sido eliminada. Por favor, utilice typeof arg === 'number' en su lugar.

DEP0053: util.isObject()

[Historia]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isObject() ha sido eliminada. Por favor, utilice arg && typeof arg === 'object' en su lugar.

DEP0054: util.isPrimitive()

[Historia]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isPrimitive() ha sido eliminada. Por favor, utilice arg === null || (typeof arg !=='object' && typeof arg !== 'function') en su lugar.

DEP0055: util.isRegExp()

[Historia]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isRegExp() ha sido eliminada. Por favor, utilice arg instanceof RegExp en su lugar.

DEP0056: util.isString()

[Historia]

VersiónCambios
v23.0.0Desaprobación de fin de vida útil.
v22.0.0Desaprobación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de desaprobación.
v4.0.0, v3.3.1Desaprobación solo de documentación.

Tipo: Fin de vida útil

La API util.isString() ha sido eliminada. Por favor, utilice typeof arg === 'string' en su lugar.

DEP0057: util.isSymbol()

[Historial]

VersiónCambios
v23.0.0Deprecación de fin de vida útil.
v22.0.0Deprecación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v4.0.0, v3.3.1Deprecación solo en la documentación.

Tipo: Fin de vida útil

La API util.isSymbol() ha sido eliminada. Por favor, use typeof arg === 'symbol' en su lugar.

DEP0058: util.isUndefined()

[Historial]

VersiónCambios
v23.0.0Deprecación de fin de vida útil.
v22.0.0Deprecación en tiempo de ejecución.
v6.12.0, v4.8.6Se ha asignado un código de obsolescencia.
v4.0.0, v3.3.1Deprecación solo en la documentación.

Tipo: Fin de vida útil

La API util.isUndefined() ha sido eliminada. Por favor, use arg === undefined en su lugar.

DEP0059: util.log()

[Historial]

VersiónCambios
v23.0.0Deprecación de fin de vida útil.
v22.0.0Deprecación en tiempo de ejecución.
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Deprecación solo en la documentación.

Tipo: Fin de vida útil

La API util.log() ha sido eliminada porque es una API heredada sin mantenimiento que se expuso al espacio de usuario por accidente. En su lugar, considere las siguientes alternativas según sus necesidades específicas:

  • Librerías de registro de terceros
  • Use console.log(new Date().toLocaleString(), message)

Al adoptar una de estas alternativas, puede alejarse de util.log() y elegir una estrategia de registro que se alinee con los requisitos específicos y la complejidad de su aplicación.

DEP0060: util._extend()

[Historial]

VersiónCambios
v22.0.0Deprecación en tiempo de ejecución.
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Deprecación solo en la documentación.

Tipo: Tiempo de ejecución

La API util._extend() está obsoleta porque es una API heredada sin mantenimiento que se expuso al espacio de usuario por accidente. Por favor, use target = Object.assign(target, source) en su lugar.

DEP0061: fs.SyncWriteStream

[Historial]

VersiónCambios
v11.0.0Fin de vida útil.
v8.0.0Obsoleto en tiempo de ejecución.
v7.0.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

La clase fs.SyncWriteStream nunca se pensó para ser una API accesible públicamente y ha sido eliminada. No hay una API alternativa disponible. Por favor, utilice una alternativa en espacio de usuario.

DEP0062: node --debug

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v8.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

--debug activa la interfaz de depuración V8 heredada, que se eliminó a partir de V8 5.8. Se reemplaza por Inspector, que se activa con --inspect en su lugar.

DEP0063: ServerResponse.prototype.writeHeader()

[Historial]

VersiónCambios
v8.0.0Obsoleto solo en la documentación.

Tipo: Solo en la documentación

La API ServerResponse.prototype.writeHeader() del módulo node:http está obsoleta. Por favor, utilice ServerResponse.prototype.writeHead() en su lugar.

El método ServerResponse.prototype.writeHeader() nunca se documentó como una API oficialmente compatible.

DEP0064: tls.createSecurePair()

[Historial]

VersiónCambios
v8.0.0Obsoleto en tiempo de ejecución.
v6.12.0Se ha asignado un código de obsolescencia.
v6.0.0Obsoleto solo en la documentación.
v0.11.15Obsolecencia revocada.
v0.11.3Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

La API tls.createSecurePair() se consideró obsoleta en la documentación en Node.js 0.11.3. Los usuarios deben usar tls.Socket en su lugar.

DEP0065: repl.REPL_MODE_MAGIC y NODE_REPL_MODE=magic

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.
v8.0.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

La constante REPL_MODE_MAGIC del módulo node:repl, utilizada para la opción replMode, ha sido eliminada. Su comportamiento ha sido funcionalmente idéntico al de REPL_MODE_SLOPPY desde Node.js 6.0.0, cuando se importó V8 5.0. Por favor, utilice REPL_MODE_SLOPPY en su lugar.

La variable de entorno NODE_REPL_MODE se utiliza para establecer el replMode subyacente de una sesión interactiva de node. Su valor, magic, también se elimina. Por favor, utilice sloppy en su lugar.

DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames

[Historial]

VersiónCambios
v12.0.0Obsoleto en tiempo de ejecución.
v8.0.0Obsoleto solo en la documentación.

Tipo: Tiempo de ejecución

Las propiedades OutgoingMessage.prototype._headers y OutgoingMessage.prototype._headerNames del módulo node:http están obsoletas. Utilice uno de los métodos públicos (p. ej., OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader()) para trabajar con los encabezados salientes.

Las propiedades OutgoingMessage.prototype._headers y OutgoingMessage.prototype._headerNames nunca se documentaron como propiedades oficialmente compatibles.

DEP0067: OutgoingMessage.prototype._renderHeaders

[Historial]

VersiónCambios
v8.0.0Obsoleto solo en la documentación.

Tipo: Solo documentación

La API OutgoingMessage.prototype._renderHeaders() del módulo node:http está obsoleta.

La propiedad OutgoingMessage.prototype._renderHeaders nunca se documentó como una API oficialmente compatible.

DEP0068: node debug

[Historial]

VersiónCambios
v15.0.0Se eliminó el comando heredado node debug.
v8.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

node debug corresponde al depurador de CLI heredado que ha sido reemplazado con un depurador de CLI basado en V8-inspector disponible a través de node inspect.

DEP0069: vm.runInDebugContext(string)

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.
v9.0.0Obsoleto en tiempo de ejecución.
v8.0.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

DebugContext se ha eliminado en V8 y no está disponible en Node.js 10+.

DebugContext era una API experimental.

DEP0070: async_hooks.currentId()

[Historial]

VersiónCambios
v9.0.0Fin de vida útil.
v8.2.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

async_hooks.currentId() se renombró a async_hooks.executionAsyncId() para mayor claridad.

Este cambio se realizó mientras que async_hooks era una API experimental.

DEP0071: async_hooks.triggerId()

[Historia]

VersiónCambios
v9.0.0Fin de vida útil.
v8.2.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

async_hooks.triggerId() se renombró a async_hooks.triggerAsyncId() para mayor claridad.

Este cambio se realizó mientras async_hooks era una API experimental.

DEP0072: async_hooks.AsyncResource.triggerId()

[Historia]

VersiónCambios
v9.0.0Fin de vida útil.
v8.2.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

async_hooks.AsyncResource.triggerId() se renombró a async_hooks.AsyncResource.triggerAsyncId() para mayor claridad.

Este cambio se realizó mientras async_hooks era una API experimental.

DEP0073: Varias propiedades internas de net.Server

[Historia]

VersiónCambios
v10.0.0Fin de vida útil.
v9.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

El acceso a varias propiedades internas no documentadas de las instancias de net.Server con nombres inapropiados está desaprobado.

Como la API original no estaba documentada y no era generalmente útil para el código no interno, no se proporciona ninguna API de reemplazo.

DEP0074: REPLServer.bufferedCommand

[Historia]

VersiónCambios
v15.0.0Fin de vida útil.
v9.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

La propiedad REPLServer.bufferedCommand se desaprobó en favor de REPLServer.clearBufferedCommand().

DEP0075: REPLServer.parseREPLKeyword()

[Historia]

VersiónCambios
v15.0.0Fin de vida útil.
v9.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

REPLServer.parseREPLKeyword() se eliminó de la visibilidad del espacio de usuario.

DEP0076: tls.parseCertString()

[Historia]

VersiónCambios
v18.0.0Fin de vida útil.
v9.0.0Desaprobación en tiempo de ejecución.
v8.6.0Desaprobación solo en la documentación.

Tipo: Fin de vida útil

tls.parseCertString() era una ayuda de análisis trivial que se hizo pública por error. Si bien se suponía que debía analizar las cadenas de sujeto y emisor del certificado, nunca manejó correctamente los Nombres Distinguidos Relativos de valores múltiples.

Las versiones anteriores de este documento sugerían usar querystring.parse() como una alternativa a tls.parseCertString(). Sin embargo, querystring.parse() tampoco maneja correctamente todos los sujetos del certificado y no debe usarse.

DEP0077: Module._debug()

[Historia]

VersiónCambios
v9.0.0Desaprobación en tiempo de ejecución.

Tipo: Tiempo de ejecución

Module._debug() está desaprobado.

La función Module._debug() nunca se documentó como una API oficialmente compatible.

DEP0078: REPLServer.turnOffEditorMode()

[Historia]

VersiónCambios
v15.0.0Fin de vida útil.
v9.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

REPLServer.turnOffEditorMode() se eliminó de la visibilidad del espacio de usuario.

DEP0079: Función de inspección personalizada en objetos a través de .inspect()

[Historia]

VersiónCambios
v11.0.0Fin de vida útil.
v10.0.0Desaprobación en tiempo de ejecución.
v8.7.0Desaprobación solo de documentación.

Tipo: Fin de vida útil

El uso de una propiedad llamada inspect en un objeto para especificar una función de inspección personalizada para util.inspect() está desaprobado. Utilice util.inspect.custom en su lugar. Para la compatibilidad con versiones anteriores de Node.js anteriores a la versión 6.4.0, se pueden especificar ambos.

DEP0080: path._makeLong()

[Historia]

VersiónCambios
v9.0.0Desaprobación solo de documentación.

Tipo: Solo documentación

El path._makeLong() interno no estaba destinado al uso público. Sin embargo, los módulos del espacio de usuario lo han encontrado útil. La API interna está obsoleta y se reemplaza con un método path.toNamespacedPath() público e idéntico.

DEP0081: fs.truncate() usando un descriptor de archivo

[Historia]

VersiónCambios
v9.0.0Desaprobación en tiempo de ejecución.

Tipo: Tiempo de ejecución

El uso de fs.truncate() fs.truncateSync() con un descriptor de archivo está desaprobado. Utilice fs.ftruncate() o fs.ftruncateSync() para trabajar con descriptores de archivos.

DEP0082: REPLServer.prototype.memory()

[Historia]

VersiónCambios
v15.0.0Fin de vida útil.
v9.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

REPLServer.prototype.memory() solo es necesario para la mecánica interna del propio REPLServer. No utilice esta función.

DEP0083: Desactivación de ECDH estableciendo ecdhCurve en false

[Historial]

VersiónCambios
v10.0.0Fin de ciclo de vida.
v9.2.0Obsoleto en tiempo de ejecución.

Tipo: Fin de ciclo de vida.

La opción ecdhCurve para tls.createSecureContext() y tls.TLSSocket podía establecerse en false para desactivar ECDH por completo solo en el servidor. Este modo quedó obsoleto en preparación para la migración a OpenSSL 1.1.0 y la coherencia con el cliente y ahora no es compatible. Utilice el parámetro ciphers en su lugar.

DEP0084: Requerir dependencias internas agrupadas

[Historial]

VersiónCambios
v12.0.0Esta funcionalidad ha sido eliminada.
v10.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de ciclo de vida

Desde las versiones 4.4.0 y 5.2.0 de Node.js, varios módulos destinados únicamente para uso interno fueron expuestos erróneamente al código de usuario a través de require(). Estos módulos fueron:

  • v8/tools/codemap
  • v8/tools/consarray
  • v8/tools/csvparser
  • v8/tools/logreader
  • v8/tools/profile_view
  • v8/tools/profile
  • v8/tools/SourceMap
  • v8/tools/splaytree
  • v8/tools/tickprocessor-driver
  • v8/tools/tickprocessor
  • node-inspect/lib/_inspect (desde 7.6.0)
  • node-inspect/lib/internal/inspect_client (desde 7.6.0)
  • node-inspect/lib/internal/inspect_repl (desde 7.6.0)

Los módulos v8/* no tienen ninguna exportación y, si no se importan en un orden específico, de hecho, arrojarían errores. Como tal, prácticamente no existen casos de uso legítimos para importarlos a través de require().

Por otro lado, node-inspect se puede instalar localmente a través de un administrador de paquetes, ya que se publica en el registro npm con el mismo nombre. No es necesaria ninguna modificación del código fuente si eso se hace.

DEP0085: API sensible de AsyncHooks

[Historial]

VersiónCambios
v10.0.0Fin de ciclo de vida.
v9.4.0, v8.10.0Obsoleto en tiempo de ejecución.

Tipo: Fin de ciclo de vida

La API sensible de AsyncHooks nunca fue documentada y tuvo varios problemas menores. Utilice la API AsyncResource en su lugar. Consulte https://github.com/nodejs/node/issues/15572.

DEP0086: Eliminar runInAsyncIdScope

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.
v9.4.0, v8.10.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

runInAsyncIdScope no emite el evento 'before' o 'after' y, por lo tanto, puede causar muchos problemas. Ver https://github.com/nodejs/node/issues/14328.

DEP0089: require('node:assert')

[Historial]

VersiónCambios
v12.8.0Desaprobación revocada.
v9.9.0, v8.13.0Desaprobación solo en la documentación.

Tipo: Desaprobación revocada

No se recomendaba importar assert directamente, ya que las funciones expuestas utilizan verificaciones de igualdad flexibles. La desaprobación fue revocada porque no se desaconseja el uso del módulo node:assert, y la desaprobación causó confusión entre los desarrolladores.

DEP0090: Longitudes de etiquetas de autenticación GCM no válidas

[Historial]

VersiónCambios
v11.0.0Fin de vida útil.
v10.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

Node.js solía admitir todas las longitudes de etiquetas de autenticación GCM que acepta OpenSSL al llamar a decipher.setAuthTag(). A partir de Node.js v11.0.0, solo se permiten longitudes de etiquetas de autenticación de 128, 120, 112, 104, 96, 64 y 32 bits. Las etiquetas de autenticación de otras longitudes no son válidas según NIST SP 800-38D.

DEP0091: crypto.DEFAULT_ENCODING

[Historial]

VersiónCambios
v20.0.0Fin de vida útil.
v10.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

La propiedad crypto.DEFAULT_ENCODING solo existía para la compatibilidad con versiones de Node.js anteriores a las versiones 0.9.3 y se ha eliminado.

DEP0092: this de nivel superior enlazado a module.exports

[Historial]

VersiónCambios
v10.0.0Desaprobación solo en la documentación.

Tipo: Solo en la documentación

Asignar propiedades al this de nivel superior como alternativa a module.exports está obsoleto. Los desarrolladores deben usar exports o module.exports en su lugar.

DEP0093: crypto.fips está obsoleto y ha sido reemplazado

[Historial]

VersiónCambios
v23.0.0Obsoleto en tiempo de ejecución.
v10.0.0Obsoleto solo en documentación.

Tipo: Tiempo de ejecución

La propiedad crypto.fips está obsoleta. Por favor, use crypto.setFips() y crypto.getFips() en su lugar.

DEP0094: Usar assert.fail() con más de un argumento

[Historial]

VersiónCambios
v10.0.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

Usar assert.fail() con más de un argumento está obsoleto. Use assert.fail() con solo un argumento o use un método diferente del módulo node:assert.

DEP0095: timers.enroll()

[Historial]

VersiónCambios
v10.0.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

timers.enroll() está obsoleto. Por favor, use los documentados públicamente setTimeout() o setInterval() en su lugar.

DEP0096: timers.unenroll()

[Historial]

VersiónCambios
v10.0.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

timers.unenroll() está obsoleto. Por favor, use los documentados públicamente clearTimeout() o clearInterval() en su lugar.

DEP0097: MakeCallback con la propiedad domain

[Historial]

VersiónCambios
v10.0.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

Los usuarios de MakeCallback que añaden la propiedad domain para llevar el contexto, deberían empezar a usar la variante async_context de MakeCallback o CallbackScope, o la clase de alto nivel AsyncResource.

DEP0098: APIs AsyncResource.emitBefore y AsyncResource.emitAfter para incrustar AsyncHooks

[Historial]

VersiónCambios
v12.0.0Fin de vida.
v10.0.0, v9.6.0, v8.12.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida

La API incrustada proporcionada por AsyncHooks expone los métodos .emitBefore() y .emitAfter() que son muy fáciles de usar incorrectamente, lo que puede llevar a errores irrecuperables.

Use la API asyncResource.runInAsyncScope() en su lugar, la cual proporciona una alternativa mucho más segura y conveniente. Vea https://github.com/nodejs/node/pull/18513.

DEP0099: APIs C++ node::MakeCallback sin contexto asíncrono

[Historial]

VersiónCambios
v10.0.0Obsoleto en tiempo de compilación.

Tipo: Tiempo de compilación

Ciertas versiones de las API node::MakeCallback disponibles para complementos nativos están obsoletas. Utilice las versiones de la API que aceptan un parámetro async_context.

DEP0100: process.assert()

[Historial]

VersiónCambios
v23.0.0Fin de vida útil.
v10.0.0Obsoleto en tiempo de ejecución.
v0.3.7Obsoleto solo en la documentación.

Tipo: Fin de vida útil

process.assert() está obsoleto. Utilice el módulo assert en su lugar.

Esta nunca fue una característica documentada.

DEP0101: --with-lttng

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.

Tipo: Fin de vida útil

Se ha eliminado la opción de tiempo de compilación --with-lttng.

DEP0102: Usar noAssert en operaciones Buffer#(read|write)

[Historial]

VersiónCambios
v10.0.0Fin de vida útil.

Tipo: Fin de vida útil

El uso del argumento noAssert ya no tiene ninguna funcionalidad. Toda la entrada se verifica independientemente del valor de noAssert. Omitir la verificación podría provocar errores y bloqueos difíciles de encontrar.

DEP0103: Comprobaciones de tipo process.binding('util').is[...]

[Historial]

VersiónCambios
v10.9.0Sustituido por DEP0111.
v10.0.0Obsoleto solo en la documentación.

Tipo: Solo documentación (admite --pending-deprecation)

En general, se debe evitar el uso de process.binding(). Los métodos de verificación de tipo en particular se pueden reemplazar mediante el uso de util.types.

Esta obsolescencia ha sido reemplazada por la obsolescencia de la API process.binding() (DEP0111).

DEP0104: Coerción de cadenas process.env

[Historial]

VersiónCambios
v10.0.0Obsoleto solo en la documentación.

Tipo: Solo documentación (admite --pending-deprecation)

Al asignar una propiedad que no es una cadena a process.env, el valor asignado se convierte implícitamente en una cadena. Este comportamiento está en desuso si el valor asignado no es una cadena, booleano o número. En el futuro, tal asignación podría resultar en un error arrojado. Convierta la propiedad a una cadena antes de asignarla a process.env.

DEP0105: decipher.finaltol

[Historial]

VersiónCambios
v11.0.0Fin de vida útil.
v10.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

decipher.finaltol() nunca ha sido documentado y era un alias para decipher.final(). Esta API ha sido eliminada, y se recomienda usar decipher.final() en su lugar.

DEP0106: crypto.createCipher y crypto.createDecipher

[Historial]

VersiónCambios
v22.0.0Fin de vida útil.
v11.0.0Obsoleto en tiempo de ejecución.
v10.0.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

crypto.createCipher() y crypto.createDecipher() han sido eliminados ya que usan una función de derivación de clave débil (MD5 sin salt) y vectores de inicialización estáticos. Se recomienda derivar una clave usando crypto.pbkdf2() o crypto.scrypt() con sales aleatorias y usar crypto.createCipheriv() y crypto.createDecipheriv() para obtener los objetos Cipher y Decipher respectivamente.

DEP0107: tls.convertNPNProtocols()

[Historial]

VersiónCambios
v11.0.0Fin de vida útil.
v10.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

Esta era una función auxiliar no documentada no destinada a ser utilizada fuera del núcleo de Node.js y quedó obsoleta por la eliminación del soporte de NPN (Negociación de Protocolo Siguiente).

DEP0108: zlib.bytesRead

[Historial]

VersiónCambios
v23.0.0Fin de vida útil.
v11.0.0Obsoleto en tiempo de ejecución.
v10.0.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

Alias obsoleto para zlib.bytesWritten. Este nombre original fue elegido porque también tenía sentido interpretar el valor como el número de bytes leídos por el motor, pero es inconsistente con otros streams en Node.js que exponen valores con estos nombres.

DEP0109: Soporte de http, https y tls para URLs inválidas

[Historial]

VersiónCambios
v16.0.0Fin de vida útil.
v11.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

Algunas URLs previamente admitidas (pero estrictamente inválidas) fueron aceptadas a través de las APIs http.request(), http.get(), https.request(), https.get() y tls.checkServerIdentity() porque fueron aceptadas por la API url.parse() heredada. Las APIs mencionadas ahora utilizan el analizador de URL WHATWG que requiere URLs estrictamente válidas. Pasar una URL inválida está obsoleto y el soporte se eliminará en el futuro.

DEP0110: Datos en caché de vm.Script

[Historial]

VersiónCambios
v10.6.0Desaprobación solo en la documentación.

Tipo: Solo en la documentación

La opción produceCachedData está obsoleta. Utilice script.createCachedData() en su lugar.

DEP0111: process.binding()

[Historial]

VersiónCambios
v11.12.0Se añadió soporte para --pending-deprecation.
v10.9.0Desaprobación solo en la documentación.

Tipo: Solo en la documentación (admite --pending-deprecation)

process.binding() es solo para uso del código interno de Node.js.

Si bien process.binding() no ha alcanzado el estado de Fin de vida útil en general, no está disponible cuando el modelo de permisos está habilitado.

DEP0112: APIs privadas de dgram

[Historial]

VersiónCambios
v11.0.0Desaprobación en tiempo de ejecución.

Tipo: Tiempo de ejecución

El módulo node:dgram contenía anteriormente varias APIs que nunca fueron diseñadas para ser accedidas fuera del núcleo de Node.js: Socket.prototype._handle, Socket.prototype._receiving, Socket.prototype._bindState, Socket.prototype._queue, Socket.prototype._reuseAddr, Socket.prototype._healthCheck(), Socket.prototype._stopReceiving() y dgram._createSocketHandle().

DEP0113: Cipher.setAuthTag(), Decipher.getAuthTag()

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v11.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Cipher.setAuthTag() y Decipher.getAuthTag() ya no están disponibles. Nunca fueron documentados y generarían un error al ser llamados.

DEP0114: crypto._toBuf()

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v11.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

La función crypto._toBuf() no fue diseñada para ser utilizada por módulos fuera del núcleo de Node.js y fue eliminada.

DEP0115: crypto.prng(), crypto.pseudoRandomBytes(), crypto.rng()

[Historial]

VersiónCambios
v11.0.0Se agregó la obsolescencia solo de documentación con soporte para --pending-deprecation.

Tipo: Solo documentación (soporta --pending-deprecation)

En versiones recientes de Node.js, no hay diferencia entre crypto.randomBytes() y crypto.pseudoRandomBytes(). Este último está obsoleto junto con los alias no documentados crypto.prng() y crypto.rng() en favor de crypto.randomBytes() y podría ser eliminado en una versión futura.

DEP0116: API de URL heredada

[Historial]

VersiónCambios
v19.0.0, v18.13.0url.parse() está obsoleto nuevamente en DEP0169.
v15.13.0, v14.17.0Obsolescencia revocada. El estado cambió a "Heredado".
v11.0.0Obsolescencia solo de documentación.

Tipo: Obsolescencia revocada

La API de URL heredada está obsoleta. Esto incluye url.format(), url.parse(), url.resolve(), y el urlObject heredado. Por favor, utilice la API de URL WHATWG en su lugar.

DEP0117: Controladores criptográficos nativos

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v11.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

Las versiones anteriores de Node.js exponían controladores a objetos nativos internos a través de la propiedad _handle de las clases Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign y Verify. La propiedad _handle se ha eliminado porque el uso inadecuado del objeto nativo puede provocar el bloqueo de la aplicación.

DEP0118: Soporte de dns.lookup() para un nombre de host falsy

[Historial]

VersiónCambios
v11.0.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

Las versiones anteriores de Node.js admitían dns.lookup() con un nombre de host falsy como dns.lookup(false) debido a la compatibilidad con versiones anteriores. Este comportamiento no está documentado y se cree que no se utiliza en aplicaciones del mundo real. Se convertirá en un error en futuras versiones de Node.js.

DEP0119: API privada process.binding('uv').errname()

[Historial]

VersiónCambios
v11.0.0Obsoleto solo en la documentación.

Tipo: Solo documentación (admite --pending-deprecation)

process.binding('uv').errname() está obsoleto. Por favor, use util.getSystemErrorName() en su lugar.

DEP0120: Soporte de contador de rendimiento de Windows

[Historial]

VersiónCambios
v12.0.0Fin de vida útil.
v11.0.0Obsoleto en tiempo de ejecución.

Tipo: Fin de vida útil

El soporte del contador de rendimiento de Windows se ha eliminado de Node.js. Las funciones no documentadas COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST() y COUNTER_HTTP_CLIENT_RESPONSE() han quedado obsoletas.

DEP0121: net._setSimultaneousAccepts()

[Historial]

VersiónCambios
v12.0.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

La función no documentada net._setSimultaneousAccepts() fue originalmente pensada para la depuración y la optimización del rendimiento cuando se utilizan los módulos node:child_process y node:cluster en Windows. La función no es generalmente útil y se está eliminando. Vea la discusión aquí: https://github.com/nodejs/node/issues/18391

DEP0122: tls Server.prototype.setOptions()

[Historial]

VersiónCambios
v12.0.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

Por favor, utilice Server.prototype.setSecureContext() en su lugar.

DEP0123: establecer el nombre del servidor TLS a una dirección IP

[Historial]

VersiónCambios
v12.0.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

Establecer el nombre del servidor TLS a una dirección IP no está permitido por RFC 6066. Esto será ignorado en una versión futura.

DEP0124: usando REPLServer.rli

[Historial]

VersiónCambios
v15.0.0Fin de vida útil.
v12.0.0Obsolescencia en tiempo de ejecución.

Tipo: Fin de vida útil

Esta propiedad es una referencia a la propia instancia.

DEP0125: require('node:_stream_wrap')

[Historial]

VersiónCambios
v12.0.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

El módulo node:_stream_wrap está obsoleto.

DEP0126: timers.active()

[Historial]

VersiónCambios
v11.14.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

El previamente indocumentado timers.active() está obsoleto. Por favor, utilice el timeout.refresh() documentado públicamente en su lugar. Si es necesario volver a referenciar el tiempo de espera, se puede utilizar timeout.ref() sin impacto en el rendimiento desde Node.js 10.

DEP0127: timers._unrefActive()

[Historial]

VersiónCambios
v11.14.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

El previamente indocumentado y "privado" timers._unrefActive() está obsoleto. Por favor, utilice el timeout.refresh() documentado públicamente en su lugar. Si es necesario eliminar la referencia al tiempo de espera, se puede utilizar timeout.unref() sin impacto en el rendimiento desde Node.js 10.

DEP0128: módulos con una entrada main no válida y un archivo index.js

[Historial]

VersiónCambios
v16.0.0Obsolescencia en tiempo de ejecución.
v12.0.0Solo documentación.

Tipo: Tiempo de ejecución

Los módulos que tienen una entrada main no válida (por ejemplo, ./does-not-exist.js) y también tienen un archivo index.js en el directorio de nivel superior resolverán el archivo index.js. Esto está obsoleto y va a lanzar un error en futuras versiones de Node.js.

DEP0129: ChildProcess._channel

[Historia]

VersiónCambios
v13.0.0Deprecación en tiempo de ejecución.
v11.14.0Solo documentación.

Tipo: Tiempo de ejecución

La propiedad _channel de los objetos de proceso hijo devueltos por spawn() y funciones similares no está destinada al uso público. Utilice ChildProcess.channel en su lugar.

DEP0130: Module.createRequireFromPath()

[Historia]

VersiónCambios
v16.0.0Fin de vida útil.
v13.0.0Deprecación en tiempo de ejecución.
v12.2.0Solo documentación.

Tipo: Fin de vida útil

Utilice module.createRequire() en su lugar.

DEP0131: Analizador HTTP heredado

[Historia]

VersiónCambios
v13.0.0Esta característica ha sido eliminada.
v12.22.0Deprecación en tiempo de ejecución.
v12.3.0Solo documentación.

Tipo: Fin de vida útil

El analizador HTTP heredado, utilizado de forma predeterminada en las versiones de Node.js anteriores a la 12.0.0, está obsoleto y se ha eliminado en la v13.0.0. Antes de la v13.0.0, se podía utilizar el indicador de línea de comandos --http-parser=legacy para volver a utilizar el analizador heredado.

DEP0132: worker.terminate() con callback

[Historia]

VersiónCambios
v12.5.0Deprecación en tiempo de ejecución.

Tipo: Tiempo de ejecución

Pasar un callback a worker.terminate() está obsoleto. Utilice la Promise devuelta en su lugar, o un listener para el evento 'exit' del worker.

DEP0133: http connection

[Historia]

VersiónCambios
v12.12.0Deprecación solo de documentación.

Tipo: Solo documentación

Prefiera response.socket sobre response.connection y request.socket sobre request.connection.

DEP0134: process._tickCallback

[Historia]

VersiónCambios
v12.12.0Deprecación solo de documentación.

Tipo: Solo documentación (admite --pending-deprecation)

La propiedad process._tickCallback nunca se documentó como una API oficialmente compatible.

DEP0135: WriteStream.open() y ReadStream.open() son internas

[Historial]

VersiónCambios
v13.0.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

WriteStream.open() y ReadStream.open() son APIs internas no documentadas que no tiene sentido usar en userland. Los flujos de archivos siempre deben abrirse a través de sus métodos de fábrica correspondientes fs.createWriteStream() y fs.createReadStream()) o pasando un descriptor de archivo en las opciones.

DEP0136: http finished

[Historial]

VersiónCambios
v13.4.0, v12.16.0Obsolescencia solo en la documentación.

Tipo: Solo documentación

response.finished indica si se ha llamado a response.end(), no si se ha emitido 'finish' y se han vaciado los datos subyacentes.

Utilice response.writableFinished o response.writableEnded en su lugar para evitar la ambigüedad.

Para mantener el comportamiento existente, response.finished debe reemplazarse con response.writableEnded.

DEP0137: Cerrar fs.FileHandle en la recolección de basura

[Historial]

VersiónCambios
v14.0.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

Permitir que un objeto fs.FileHandle se cierre en la recolección de basura está obsoleto. En el futuro, hacerlo podría resultar en un error que terminará el proceso.

Asegúrese de que todos los objetos fs.FileHandle se cierren explícitamente utilizando FileHandle.prototype.close() cuando ya no se necesite el fs.FileHandle:

js
const fsPromises = require('node:fs').promises;
async function openAndClose() {
  let filehandle;
  try {
    filehandle = await fsPromises.open('thefile.txt', 'r');
  } finally {
    if (filehandle !== undefined)
      await filehandle.close();
  }
}

DEP0138: process.mainModule

[Historial]

VersiónCambios
v14.0.0Deprecación solo de documentación.

Tipo: Solo documentación

process.mainModule es una característica exclusiva de CommonJS, mientras que el objeto global process se comparte con entornos que no son CommonJS. Su uso dentro de los módulos de ECMAScript no es compatible.

Está obsoleto en favor de require.main, porque sirve para el mismo propósito y solo está disponible en el entorno CommonJS.

DEP0139: process.umask() sin argumentos

[Historial]

VersiónCambios
v14.0.0, v12.19.0Deprecación solo de documentación.

Tipo: Solo documentación

Llamar a process.umask() sin argumentos hace que la umask de todo el proceso se escriba dos veces. Esto introduce una condición de carrera entre los hilos y es una posible vulnerabilidad de seguridad. No existe una API alternativa segura y multiplataforma.

DEP0140: Usar request.destroy() en lugar de request.abort()

[Historial]

VersiónCambios
v14.1.0, v13.14.0Deprecación solo de documentación.

Tipo: Solo documentación

Use request.destroy() en lugar de request.abort().

DEP0141: repl.inputStream y repl.outputStream

[Historial]

VersiónCambios
v14.3.0Solo documentación (admite [--pending-deprecation][]).

Tipo: Solo documentación (admite --pending-deprecation)

El módulo node:repl exportó el flujo de entrada y salida dos veces. Use .input en lugar de .inputStream y .output en lugar de .outputStream.

DEP0142: repl._builtinLibs

[Historial]

VersiónCambios
v14.3.0Solo documentación (admite [--pending-deprecation][]).

Tipo: Solo documentación

El módulo node:repl exporta una propiedad _builtinLibs que contiene una matriz de módulos incorporados. Hasta ahora estaba incompleta y, en cambio, es mejor confiar en require('node:module').builtinModules.

DEP0143: Transform._transformState

[Historia]

VersiónCambios
v14.5.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución Transform._transformState se eliminará en futuras versiones donde ya no sea necesario debido a la simplificación de la implementación.

DEP0144: module.parent

[Historia]

VersiónCambios
v14.6.0, v12.19.0Obsolescencia solo en la documentación.

Tipo: Solo documentación (admite --pending-deprecation)

Un módulo CommonJS puede acceder al primer módulo que lo requirió utilizando module.parent. Esta característica está obsoleta porque no funciona de manera consistente en presencia de módulos ECMAScript y porque proporciona una representación inexacta del gráfico de módulos CommonJS.

Algunos módulos lo usan para verificar si son el punto de entrada del proceso actual. En cambio, se recomienda comparar require.main y module:

js
if (require.main === module) {
  // Sección de código que se ejecutará solo si el archivo actual es el punto de entrada.
}

Al buscar los módulos CommonJS que han requerido el actual, se pueden usar require.cache y module.children:

js
const moduleParents = Object.values(require.cache)
  .filter((m) => m.children.includes(module));

DEP0145: socket.bufferSize

[Historia]

VersiónCambios
v14.6.0Obsolescencia solo en la documentación.

Tipo: Solo documentación

socket.bufferSize es solo un alias para writable.writableLength.

DEP0146: new crypto.Certificate()

[Historia]

VersiónCambios
v14.9.0Obsolescencia solo en la documentación.

Tipo: Solo documentación

El constructor crypto.Certificate() está obsoleto. Utilice métodos estáticos de crypto.Certificate() en su lugar.

DEP0147: fs.rmdir(path, { recursive: true }) {#dep0147-fsrmdirpath-{-recursive-true-}}

[Historia]

VersiónCambios
v16.0.0Obsolescencia en tiempo de ejecución.
v15.0.0Obsolescencia en tiempo de ejecución para el comportamiento permisivo.
v14.14.0Obsolescencia solo en la documentación.

Tipo: Tiempo de ejecución

En futuras versiones de Node.js, la opción recursive se ignorará para fs.rmdir, fs.rmdirSync y fs.promises.rmdir.

Utilice fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) o fs.promises.rm(path, { recursive: true, force: true }) en su lugar.

DEP0148: Asignaciones de carpeta en "exports" (barra final "/")

[Historial]

VersiónCambios
v17.0.0Fin de vida útil.
v16.0.0Desaprobación en tiempo de ejecución.
v15.1.0Desaprobación en tiempo de ejecución para importaciones autorreferenciales.
v14.13.0Desaprobación solo de documentación.

Tipo: Tiempo de ejecución

El uso de una barra final "/" para definir asignaciones de carpetas de subruta en los campos exportaciones de subruta o importaciones de subruta está obsoleto. Utilice patrones de subruta en su lugar.

DEP0149: http.IncomingMessage#connection

[Historial]

VersiónCambios
v16.0.0Desaprobación solo de documentación.

Tipo: Solo documentación.

Prefiera message.socket sobre message.connection.

DEP0150: Cambiar el valor de process.config

[Historial]

VersiónCambios
v19.0.0Fin de vida útil.
v16.0.0Desaprobación en tiempo de ejecución.

Tipo: Fin de vida útil

La propiedad process.config proporciona acceso a la configuración de tiempo de compilación de Node.js. Sin embargo, la propiedad es mutable y, por lo tanto, está sujeta a manipulación. La capacidad de cambiar el valor se eliminará en una futura versión de Node.js.

DEP0151: Búsqueda del índice principal y búsqueda de extensión

[Historial]

VersiónCambios
v16.0.0Desaprobación en tiempo de ejecución.
v15.8.0, v14.18.0Desaprobación solo de documentación con soporte de --pending-deprecation.

Tipo: Tiempo de ejecución

Anteriormente, las búsquedas de index.js y la búsqueda de extensión se aplicarían a la resolución del punto de entrada principal import 'pkg', incluso al resolver módulos ES.

Con esta desaprobación, todas las resoluciones de puntos de entrada principales del módulo ES requieren una entrada "exports" o "main" explícita con la extensión de archivo exacta.

DEP0152: Propiedades de extensión PerformanceEntry

[Historial]

VersiónCambios
v16.0.0Desaprobación en tiempo de ejecución.

Tipo: Tiempo de ejecución

Los tipos de objeto <PerformanceEntry> 'gc', 'http2' y 'http' tienen propiedades adicionales asignadas que proporcionan información adicional. Estas propiedades ahora están disponibles dentro de la propiedad detail estándar del objeto PerformanceEntry. Los accesores existentes han quedado obsoletos y ya no deben utilizarse.

DEP0153: Coerción de tipo de opciones de dns.lookup y dnsPromises.lookup

[Historial]

VersiónCambios
v18.0.0Fin de vida útil.
v17.0.0Obsoleto en tiempo de ejecución.
v16.8.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

Usar un valor no nulo ni entero para la opción family, un valor no nulo ni numérico para la opción hints, un valor no nulo ni booleano para la opción all, o un valor no nulo ni booleano para la opción verbatim en dns.lookup() y dnsPromises.lookup() arroja un error ERR_INVALID_ARG_TYPE.

DEP0154: Opciones de generación de pares de claves RSA-PSS

[Historial]

VersiónCambios
v20.0.0Obsoleto en tiempo de ejecución.
v16.10.0Obsoleto solo en la documentación.

Tipo: Tiempo de ejecución

Las opciones 'hash' y 'mgf1Hash' se reemplazan con 'hashAlgorithm' y 'mgf1HashAlgorithm'.

DEP0155: Barras diagonales finales en las resoluciones de especificadores de patrón

[Historial]

VersiónCambios
v17.0.0Obsoleto en tiempo de ejecución.
v16.10.0Obsoleto solo en la documentación con soporte de --pending-deprecation.

Tipo: Tiempo de ejecución

La reasignación de especificadores que terminan en "/" como import 'pkg/x/' está obsoleta para las resoluciones de patrones "exports" e "imports" del paquete.

DEP0156: Propiedad .aborted y evento 'abort', 'aborted' en http

[Historial]

VersiónCambios
v17.0.0, v16.12.0Obsoleto solo en la documentación.

Tipo: Solo documentación

Mueva a la API <Stream> en su lugar, ya que http.ClientRequest, http.ServerResponse y http.IncomingMessage están basados ​​en secuencias. Verifique stream.destroyed en lugar de la propiedad .aborted, y escuche 'close' en lugar del evento 'abort', 'aborted'.

La propiedad .aborted y el evento 'abort' solo son útiles para detectar llamadas a .abort(). Para cerrar una solicitud anticipadamente, use Stream .destroy([error]), luego verifique que la propiedad .destroyed y el evento 'close' deberían tener el mismo efecto. El extremo receptor también debe verificar el valor de readable.readableEnded en http.IncomingMessage para obtener si fue una destrucción anulada o correcta.

DEP0157: Soporte de Thenable en los flujos

[Historial]

VersiónCambios
v18.0.0Fin de vida útil.
v17.2.0, v16.14.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

Una característica no documentada de los flujos de Node.js era admitir "thenables" en los métodos de implementación. Esto ahora está obsoleto, utilice devoluciones de llamada en su lugar y evite el uso de funciones async para los métodos de implementación de flujos.

Esta característica causó que los usuarios encontraran problemas inesperados donde el usuario implementa la función en estilo de devolución de llamada pero usa, por ejemplo, un método async que causaría un error ya que la mezcla de semántica de promesa y devolución de llamada no es válida.

js
const w = new Writable({
  async final(callback) {
    await someOp();
    callback();
  },
});

DEP0158: buffer.slice(start, end)

[Historial]

VersiónCambios
v17.5.0, v16.15.0Obsoleto solo en la documentación.

Tipo: Solo documentación

Este método quedó obsoleto porque no es compatible con Uint8Array.prototype.slice(), que es una superclase de Buffer.

Utilice buffer.subarray que hace lo mismo en su lugar.

DEP0159: ERR_INVALID_CALLBACK

[Historial]

VersiónCambios
v18.0.0Fin de vida útil.

Tipo: Fin de vida útil

Este código de error se eliminó debido a que agregaba más confusión a los errores utilizados para la validación del tipo de valor.

DEP0160: process.on('multipleResolves', handler)

[Historial]

VersiónCambios
v18.0.0Obsoleto en tiempo de ejecución.
v17.6.0, v16.15.0Obsoleto solo en la documentación.

Tipo: Tiempo de ejecución.

Este evento quedó obsoleto porque no funcionaba con los combinadores de promesas V8, lo que disminuyó su utilidad.

DEP0161: process._getActiveRequests() y process._getActiveHandles()

[Historial]

VersiónCambios
v17.6.0, v16.15.0Obsoleto solo en la documentación.

Tipo: Solo documentación

Las funciones process._getActiveHandles() y process._getActiveRequests() no están destinadas para uso público y se pueden eliminar en futuras versiones.

Utilice process.getActiveResourcesInfo() para obtener una lista de tipos de recursos activos y no las referencias reales.

DEP0162: Coerción a cadena de fs.write(), fs.writeFileSync()

[Historial]

VersiónCambios
v19.0.0Fin de vida útil.
v18.0.0Obsolescencia en tiempo de ejecución.
v17.8.0, v16.15.0Obsolescencia solo en la documentación.

Tipo: Fin de vida útil

La coerción implícita de objetos con la propiedad toString propia, pasados como segundo parámetro en fs.write(), fs.writeFile(), fs.appendFile(), fs.writeFileSync() y fs.appendFileSync() está obsoleta. Conviértalos en cadenas primitivas.

DEP0163: channel.subscribe(onMessage), channel.unsubscribe(onMessage)

[Historial]

VersiónCambios
v18.7.0, v16.17.0Obsolescencia solo en la documentación.

Tipo: Solo documentación

Estos métodos quedaron obsoletos porque se pueden usar de una manera que no mantiene la referencia del canal activa el tiempo suficiente para recibir los eventos.

Use diagnostics_channel.subscribe(name, onMessage) o diagnostics_channel.unsubscribe(name, onMessage) que hace lo mismo en su lugar.

DEP0164: Coerción a entero de process.exit(code), process.exitCode

[Historial]

VersiónCambios
v20.0.0Fin de vida útil.
v19.0.0Obsolescencia en tiempo de ejecución.
v18.10.0, v16.18.0Obsolescencia solo en la documentación de la coerción de enteros de process.exitCode.
v18.7.0, v16.17.0Obsolescencia solo en la documentación de la coerción de enteros de process.exit(code).

Tipo: Fin de vida útil

Los valores distintos de undefined, null, números enteros y cadenas de enteros (por ejemplo, '1') están obsoletos como valor para el parámetro code en process.exit() y como valor para asignar a process.exitCode.

DEP0165: --trace-atomics-wait

[Historial]

VersiónCambios
v23.0.0Fin de vida útil.
v22.0.0Obsoleto en tiempo de ejecución.
v18.8.0, v16.18.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

La bandera --trace-atomics-wait ha sido eliminada porque usa el enlace V8 SetAtomicsWaitCallback, que será eliminado en una futura versión de V8.

DEP0166: Dobles barras diagonales en objetivos de importaciones y exportaciones

[Historial]

VersiónCambios
v19.0.0Obsoleto en tiempo de ejecución.
v18.10.0Obsoleto solo en la documentación con soporte para --pending-deprecation.

Tipo: Tiempo de ejecución

Las importaciones de paquetes y los objetivos de exportación que se asignan a rutas que incluyen una doble barra diagonal (de "/" o "") están obsoletos y fallarán con un error de validación de resolución en una futura versión. Esta misma obsolescencia también se aplica a las coincidencias de patrones que comienzan o terminan con una barra diagonal.

DEP0167: Instancias débiles de DiffieHellmanGroup (modp1, modp2, modp5)

[Historial]

VersiónCambios
v18.10.0, v16.18.0Obsoleto solo en la documentación.

Tipo: Solo en la documentación

Los grupos MODP conocidos modp1, modp2 y modp5 están obsoletos porque no son seguros contra ataques prácticos. Consulte la Sección 2.4 de RFC 8247 para obtener más detalles.

Estos grupos podrían eliminarse en futuras versiones de Node.js. Las aplicaciones que dependen de estos grupos deben evaluar el uso de grupos MODP más fuertes en su lugar.

DEP0168: Excepción no controlada en las devoluciones de llamada de Node-API

[Historial]

VersiónCambios
v18.3.0, v16.17.0Obsoleto en tiempo de ejecución.

Tipo: Tiempo de ejecución

La supresión implícita de excepciones no capturadas en las devoluciones de llamada de Node-API ahora está obsoleta.

Establezca el indicador --force-node-api-uncaught-exceptions-policy para forzar a Node.js a emitir un evento 'uncaughtException' si la excepción no se maneja en las devoluciones de llamada de Node-API.

DEP0169: url.parse() inseguro

[Historial]

VersiónCambios
v19.9.0, v18.17.0Se agregó soporte para --pending-deprecation.
v19.0.0, v18.13.0Obsolescencia solo de documentación.

Tipo: Solo documentación (admite --pending-deprecation)

El comportamiento de url.parse() no está estandarizado y es propenso a errores que tienen implicaciones de seguridad. Utilice la API URL WHATWG en su lugar. No se emiten CVE para vulnerabilidades de url.parse().

DEP0170: Puerto no válido al usar url.parse()

[Historial]

VersiónCambios
v20.0.0Obsolescencia en tiempo de ejecución.
v19.2.0, v18.13.0Obsolescencia solo de documentación.

Tipo: Tiempo de ejecución

url.parse() acepta URL con puertos que no son números. Este comportamiento podría resultar en una suplantación del nombre de host con una entrada inesperada. Estas URL lanzarán un error en futuras versiones de Node.js, como ya lo hace la API URL WHATWG.

DEP0171: Modificadores para encabezados y trailers de http.IncomingMessage

[Historial]

VersiónCambios
v19.3.0, v18.13.0Obsolescencia solo de documentación.

Tipo: Solo documentación

En una futura versión de Node.js, message.headers, message.headersDistinct, message.trailers y message.trailersDistinct serán de solo lectura.

DEP0172: La propiedad asyncResource de las funciones enlazadas a AsyncResource

[Historial]

VersiónCambios
v20.0.0Obsolescencia en tiempo de ejecución.

Tipo: Tiempo de ejecución

En una futura versión de Node.js, la propiedad asyncResource ya no se agregará cuando una función se vincule a un AsyncResource.

DEP0173: La clase assert.CallTracker

[Historial]

VersiónCambios
v20.1.0Obsolescencia solo de documentación.

Tipo: Solo documentación

En una futura versión de Node.js, assert.CallTracker será eliminado. Considere usar alternativas como la función auxiliar mock.

DEP0174: llamar a promisify en una función que devuelve una Promise

[Historial]

VersiónCambios
v21.0.0Obsoleto en tiempo de ejecución.
v20.8.0Obsoleto solo en la documentación.

Tipo: Tiempo de ejecución

Llamar a util.promisify en una función que devuelve una

DEP0175: util.toUSVString

[Historial]

VersiónCambios
v20.8.0Obsoleto solo en la documentación.

Tipo: Solo documentación

La API util.toUSVString() está obsoleta. Utilice String.prototype.toWellFormed en su lugar.

DEP0176: fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK

[Historial]

VersiónCambios
v20.8.0Obsoleto solo en la documentación.

Tipo: Solo documentación

Los captadores F_OK, R_OK, W_OK y X_OK expuestos directamente en node:fs están obsoletos. Obténgalos de fs.constants o fs.promises.constants en su lugar.

DEP0177: util.types.isWebAssemblyCompiledModule

[Historial]

VersiónCambios
v21.7.0, v20.12.0Fin de vida útil.
v21.3.0, v20.11.0Se ha asignado un código de obsolescencia.
v14.0.0Obsoleto solo en la documentación.

Tipo: Fin de vida útil

La API util.types.isWebAssemblyCompiledModule ha sido eliminada. Utilice value instanceof WebAssembly.Module en su lugar.

DEP0178: dirent.path

[Historial]

VersiónCambios
v23.0.0Obsoleto en tiempo de ejecución.
v21.5.0, v20.12.0, v18.20.0Obsoleto solo en la documentación.

Tipo: Tiempo de ejecución

El dirent.path está obsoleto debido a su falta de consistencia entre las líneas de lanzamiento. Utilice dirent.parentPath en su lugar.

DEP0179: Constructor Hash

[Historial]

VersiónCambios
v22.0.0Obsoleto en tiempo de ejecución.
v21.5.0, v20.12.0Obsoleto solo en la documentación.

Tipo: Tiempo de ejecución

Llamar a la clase Hash directamente con Hash() o new Hash() está obsoleto debido a que es interno, no está destinado al uso público. Utilice el método crypto.createHash() para crear instancias de Hash.

DEP0180: Constructor fs.Stats

[Historial]

VersiónCambios
v22.0.0Obsolescencia en tiempo de ejecución.
v20.13.0Obsolescencia solo en la documentación.

Tipo: Tiempo de ejecución

Llamar a la clase fs.Stats directamente con Stats() o new Stats() está obsoleto debido a que son elementos internos, no destinados al uso público.

DEP0181: Constructor Hmac

[Historial]

VersiónCambios
v22.0.0Obsolescencia en tiempo de ejecución.
v20.13.0Obsolescencia solo en la documentación.

Tipo: Tiempo de ejecución

Llamar a la clase Hmac directamente con Hmac() o new Hmac() está obsoleto debido a que son elementos internos, no destinados al uso público. Utilice el método crypto.createHmac() para crear instancias de Hmac.

DEP0182: Etiquetas de autenticación GCM cortas sin authTagLength explícito

[Historial]

VersiónCambios
v23.0.0Obsolescencia en tiempo de ejecución.
v20.13.0Obsolescencia solo en la documentación.

Tipo: Tiempo de ejecución

Las aplicaciones que tengan la intención de utilizar etiquetas de autenticación que sean más cortas que la longitud de la etiqueta de autenticación predeterminada deben establecer la opción authTagLength de la función crypto.createDecipheriv() a la longitud apropiada.

Para los cifrados en modo GCM, la función decipher.setAuthTag() acepta etiquetas de autenticación de cualquier longitud válida (consulte DEP0090). Este comportamiento está obsoleto para alinearse mejor con las recomendaciones de NIST SP 800-38D.

DEP0183: API basadas en el motor OpenSSL

[Historial]

VersiónCambios
v22.4.0, v20.16.0Obsolescencia solo en la documentación.

Tipo: Solo documentación

OpenSSL 3 ha dejado de admitir motores personalizados con una recomendación de cambiar a su nuevo modelo de proveedor. La opción clientCertEngine para https.request(), tls.createSecureContext() y tls.createServer(); privateKeyEngine y privateKeyIdentifier para tls.createSecureContext(); y crypto.setEngine() todos dependen de esta funcionalidad de OpenSSL.

DEP0184: Instanciación de clases node:zlib sin new

[Historial]

VersiónCambios
v22.9.0, v20.18.0Desaprobación solo en la documentación.

Tipo: Solo en la documentación

La instanciación de clases sin el calificador new exportado por el módulo node:zlib está en desuso. Se recomienda utilizar el calificador new en su lugar. Esto se aplica a todas las clases Zlib, como Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip y Zlib.

DEP0185: Instanciación de clases node:repl sin new

[Historial]

VersiónCambios
v22.9.0, v20.18.0Desaprobación solo en la documentación.

Tipo: Solo en la documentación

La instanciación de clases sin el calificador new exportado por el módulo node:repl está en desuso. Se recomienda utilizar el calificador new en su lugar. Esto se aplica a todas las clases REPL, incluyendo REPLServer y Recoverable.

DEP0187: Pasar tipos de argumentos no válidos a fs.existsSync

[Historial]

VersiónCambios
v23.4.0Solo en la documentación.

Tipo: Solo en la documentación

Pasar tipos de argumentos no admitidos está en desuso y, en lugar de devolver false, lanzará un error en una versión futura.

DEP0188: process.features.ipv6 y process.features.uv

[Historial]

VersiónCambios
v23.4.0Desaprobación solo en la documentación.

Tipo: Solo en la documentación

Estas propiedades son incondicionalmente true. Cualquier comprobación basada en estas propiedades es redundante.

DEP0189: process.features.tls_*

[Historial]

VersiónCambios
v23.4.0Desaprobación solo en la documentación.

Tipo: Solo en la documentación

process.features.tls_alpn, process.features.tls_ocsp y process.features.tls_sni están en desuso, ya que se garantiza que sus valores serán idénticos a los de process.features.tls.