Skip to content

API dépréciées

Les API Node.js peuvent être dépréciées pour l'une des raisons suivantes :

  • L'utilisation de l'API n'est pas sûre.
  • Une API alternative améliorée est disponible.
  • Des modifications importantes de l'API sont attendues dans une future version majeure.

Node.js utilise quatre types de dépréciations :

  • Documentation uniquement
  • Application (code autre que node_modules uniquement)
  • Exécution (tout le code)
  • Fin de vie

Une dépréciation de documentation uniquement est une dépréciation qui est exprimée uniquement dans la documentation de l'API Node.js. Celles-ci ne génèrent aucun effet secondaire lors de l'exécution de Node.js. Certaines dépréciations de documentation uniquement déclenchent un avertissement d'exécution lorsqu'elles sont lancées avec l'indicateur --pending-deprecation (ou son alternative, la variable d'environnement NODE_PENDING_DEPRECATION=1), de la même manière que les dépréciations d'exécution ci-dessous. Les dépréciations de documentation uniquement qui prennent en charge cet indicateur sont explicitement étiquetées comme telles dans la liste des API dépréciées.

Une dépréciation d'application pour le code autre que node_modules générera, par défaut, un avertissement de processus qui sera imprimé dans stderr la première fois que l'API dépréciée est utilisée dans du code qui n'est pas chargé à partir de node_modules. Lorsque l'indicateur de ligne de commande --throw-deprecation est utilisé, une dépréciation d'exécution provoquera la levée d'une erreur. Lorsque --pending-deprecation est utilisé, des avertissements seront également émis pour le code chargé à partir de node_modules.

Une dépréciation d'exécution pour tout le code est similaire à la dépréciation d'exécution pour le code autre que node_modules, sauf qu'elle émet également un avertissement pour le code chargé à partir de node_modules.

Une dépréciation de fin de vie est utilisée lorsque des fonctionnalités sont ou seront bientôt supprimées de Node.js.

Révocation des dépréciations

Parfois, la dépréciation d'une API peut être annulée. Dans de telles situations, ce document sera mis à jour avec des informations pertinentes à la décision. Cependant, l'identifiant de dépréciation ne sera pas modifié.

Liste des API dépréciées

DEP0001 : http.OutgoingMessage.prototype.flush

[Historique]

VersionModifications
v14.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v1.6.0Dépréciation d'exécution.

Type : Fin de vie

OutgoingMessage.prototype.flush() a été supprimé. Utilisez OutgoingMessage.prototype.flushHeaders() à la place.

[Historique]

VersionModifications
v8.0.0Fin de vie.
v6.12.0Un code de dépréciation a été attribué.
v5.0.0Dépréciation d'exécution.

Type: Fin de vie

Le module _linklist est obsolète. Veuillez utiliser une alternative en espace utilisateur.

DEP0003: _writableState.buffer

[Historique]

VersionModifications
v14.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.11.15Dépréciation d'exécution.

Type: Fin de vie

_writableState.buffer a été supprimé. Utilisez _writableState.getBuffer() à la place.

DEP0004: CryptoStream.prototype.readyState

[Historique]

VersionModifications
v10.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.4.0Dépréciation uniquement de documentation.

Type: Fin de vie

La propriété CryptoStream.prototype.readyState a été supprimée.

DEP0005: Constructeur Buffer()

[Historique]

VersionModifications
v10.0.0Dépréciation d'exécution.
v6.12.0Un code de dépréciation a été attribué.
v6.0.0Dépréciation uniquement de documentation.

Type: Application (code autre que node_modules uniquement)

La fonction Buffer() et le constructeur new Buffer() sont obsolètes en raison de problèmes d'utilisabilité de l'API qui peuvent entraîner des problèmes de sécurité accidentels.

Comme alternative, utilisez l'une des méthodes suivantes pour construire des objets Buffer :

Sans --pending-deprecation, les avertissements d'exécution se produisent uniquement pour le code qui n'est pas dans node_modules. Cela signifie qu'il n'y aura pas d'avertissements de dépréciation pour l'utilisation de Buffer() dans les dépendances. Avec --pending-deprecation, un avertissement d'exécution est généré, quel que soit l'endroit où l'utilisation de Buffer() se produit.

DEP0006 : child_process options.customFds

[Historique]

VersionModifications
v12.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.11.14Dépréciation lors de l'exécution.
v0.5.10Dépréciation uniquement dans la documentation.

Type : Fin de vie

Dans les méthodes spawn(), fork() et exec() du module child_process, l'option options.customFds est dépréciée. L'option options.stdio doit être utilisée à la place.

DEP0007 : Remplacer cluster worker.suicide par worker.exitedAfterDisconnect

[Historique]

VersionModifications
v9.0.0Fin de vie.
v7.0.0Dépréciation lors de l'exécution.
v6.12.0Un code de dépréciation a été attribué.
v6.0.0Dépréciation uniquement dans la documentation.

Type : Fin de vie

Dans une version antérieure du cluster de Node.js, une propriété booléenne nommée suicide a été ajoutée à l'objet Worker. Cette propriété avait pour but d'indiquer comment et pourquoi l'instance Worker s'était terminée. Dans Node.js 6.0.0, l'ancienne propriété a été dépréciée et remplacée par une nouvelle propriété worker.exitedAfterDisconnect. L'ancien nom de propriété ne décrivait pas précisément la sémantique réelle et était inutilement chargé d'émotion.

DEP0008 : require('node:constants')

[Historique]

VersionModifications
v6.12.0Un code de dépréciation a été attribué.
v6.3.0Dépréciation uniquement dans la documentation.

Type : Dépréciation uniquement dans la documentation

Le module node:constants est déprécié. Lors de la nécessité d'accéder aux constantes pertinentes à des modules intégrés spécifiques de Node.js, les développeurs doivent se référer à la propriété constants exposée par le module concerné. Par exemple, require('node:fs').constants et require('node:os').constants.

DEP0009 : crypto.pbkdf2 sans digest

[Historique]

VersionModifications
v14.0.0Fin de vie (pour digest === null).
v11.0.0Dépréciation lors de l'exécution (pour digest === null).
v8.0.0Fin de vie (pour digest === undefined).
v6.12.0Un code de dépréciation a été attribué.
v6.0.0Dépréciation lors de l'exécution (pour digest === undefined).

Type : Fin de vie

L'utilisation de l'API crypto.pbkdf2() sans spécifier de digest a été dépréciée dans Node.js 6.0 car la méthode utilisait par défaut le digest 'SHA1', qui n'est pas recommandé. Auparavant, un avertissement de dépréciation était affiché. À partir de Node.js 8.0.0, appeler crypto.pbkdf2() ou crypto.pbkdf2Sync() avec digest défini sur undefined lèvera une TypeError.

À partir de Node.js v11.0.0, appeler ces fonctions avec digest défini sur null afficherait un avertissement de dépréciation pour s'aligner sur le comportement lorsque digest est undefined.

Désormais, cependant, passer undefined ou null lèvera une TypeError.

DEP0010 : crypto.createCredentials

[Historique]

VersionModifications
v11.0.0Fin de vie.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.11.13Obsolescence d’exécution.

Type : Fin de vie

L’API crypto.createCredentials() a été supprimée. Veuillez utiliser plutôt tls.createSecureContext().

DEP0011 : crypto.Credentials

[Historique]

VersionModifications
v11.0.0Fin de vie.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.11.13Obsolescence d’exécution.

Type : Fin de vie

La classe crypto.Credentials a été supprimée. Veuillez utiliser plutôt tls.SecureContext.

DEP0012 : Domain.dispose

[Historique]

VersionModifications
v9.0.0Fin de vie.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.11.7Obsolescence d’exécution.

Type : Fin de vie

Domain.dispose() a été supprimé. Récupérez les actions d’E/S ayant échoué explicitement via les gestionnaires d’événements d’erreur définis sur le domaine à la place.

DEP0013 : fonction asynchrone fs sans rappel

[Historique]

VersionModifications
v10.0.0Fin de vie.
v7.0.0Obsolescence d’exécution.

Type : Fin de vie

L’appel d’une fonction asynchrone sans rappel lève une TypeError dans Node.js 10.0.0 et versions ultérieures. Voir https://github.com/nodejs/node/pull/12562.

DEP0014 : interface String héritée fs.read

[Historique]

VersionModifications
v8.0.0Fin de vie.
v6.0.0Obsolescence d’exécution.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.1.96Obsolescence de documentation uniquement.

Type : Fin de vie

L’interface String héritée de fs.read() est obsolète. Utilisez plutôt l’API Buffer comme mentionné dans la documentation.

DEP0015 : interface String héritée fs.readSync

[Historique]

VersionModifications
v8.0.0Fin de vie.
v6.0.0Obsolescence d’exécution.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.1.96Obsolescence de documentation uniquement.

Type : Fin de vie

L’interface String héritée de fs.readSync() est obsolète. Utilisez plutôt l’API Buffer comme mentionné dans la documentation.

DEP0016 : GLOBAL/root

[Historique]

VersionModifications
v14.0.0Fin de vie.
v6.12.0Un code d’obsolescence a été attribué.
v6.0.0Obsolescence d’exécution.

Type : Fin de vie

Les alias GLOBAL et root pour la propriété global ont été déclarés obsolètes dans Node.js 6.0.0 et ont depuis été supprimés.

DEP0017 : Intl.v8BreakIterator

[Historique]

VersionModifications
v9.0.0Fin de vie.
v7.0.0Obsolescence d’exécution.

Type : Fin de vie

Intl.v8BreakIterator était une extension non standard et a été supprimée. Voir Intl.Segmenter.

DEP0018 : Rejets de promesses non gérés

[Historique]

VersionModifications
v15.0.0Fin de vie.
v7.0.0Obsolescence d’exécution.

Type : Fin de vie

Les rejets de promesses non gérés sont obsolètes. Par défaut, les rejets de promesses qui ne sont pas gérés terminent le processus Node.js avec un code de sortie non nul. Pour modifier la façon dont Node.js traite les rejets non gérés, utilisez l’option de ligne de commande --unhandled-rejections.

DEP0019 : require('.') résolu en dehors du répertoire

[Historique]

VersionModifications
v12.0.0Fonctionnalité supprimée.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v1.8.1Obsolescence d’exécution.

Type : Fin de vie

Dans certains cas, require('.') pouvait être résolu en dehors du répertoire du package. Ce comportement a été supprimé.

DEP0020 : Server.connections

[Historique]

VersionModifications
v15.0.0Server.connections a été supprimé.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.9.7Obsolescence d’exécution.

Type : Fin de vie

La propriété Server.connections a été déclarée obsolète dans Node.js v0.9.7 et a été supprimée. Veuillez utiliser à la place la méthode Server.getConnections().

DEP0021 : Server.listenFD

[Historique]

VersionModifications
v12.0.0Fin de vie.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.7.12Obsolescence d’exécution.

Type : Fin de vie

La méthode Server.listenFD() a été déclarée obsolète et supprimée. Veuillez utiliser à la place Server.listen({fd: \<nombre\>}).

DEP0022: os.tmpDir()

[Historique]

VersionModifications
v14.0.0Fin de vie.
v7.0.0Dépréciation à l'exécution.

Type: Fin de vie

L'API os.tmpDir() a été dépréciée dans Node.js 7.0.0 et a depuis été supprimée. Veuillez utiliser os.tmpdir() à la place.

DEP0023: os.getNetworkInterfaces()

[Historique]

VersionModifications
v12.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.6.0Dépréciation à l'exécution.

Type: Fin de vie

La méthode os.getNetworkInterfaces() est dépréciée. Veuillez utiliser la méthode os.networkInterfaces() à la place.

DEP0024: REPLServer.prototype.convertToContext()

[Historique]

VersionModifications
v9.0.0Fin de vie.
v7.0.0Dépréciation à l'exécution.

Type: Fin de vie

L'API REPLServer.prototype.convertToContext() a été supprimée.

DEP0025: require('node:sys')

[Historique]

VersionModifications
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v1.0.0Dépréciation à l'exécution.

Type: Exécution

Le module node:sys est déprécié. Veuillez utiliser le module util à la place.

DEP0026: util.print()

[Historique]

VersionModifications
v12.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.11.3Dépréciation à l'exécution.

Type: Fin de vie

util.print() a été supprimé. Veuillez utiliser console.log() à la place.

DEP0027: util.puts()

[Historique]

VersionModifications
v12.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.11.3Dépréciation à l'exécution.

Type: Fin de vie

util.puts() a été supprimé. Veuillez utiliser console.log() à la place.

DEP0028: util.debug()

[Historique]

VersionModifications
v12.0.0Fin de vie.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.11.3Dépréciation à l'exécution.

Type: Fin de vie

util.debug() a été supprimé. Veuillez utiliser console.error() à la place.

DEP0029 : util.error()

[Historique]

VersionModifications
v12.0.0Fin de vie.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.11.3Obsolescence d’exécution.

Type : Fin de vie

util.error() a été supprimé. Veuillez utiliser console.error() à la place.

DEP0030 : SlowBuffer

[Historique]

VersionModifications
v6.12.0Un code d’obsolescence a été attribué.
v6.0.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

La classe SlowBuffer est obsolète. Veuillez utiliser Buffer.allocUnsafeSlow(size) à la place.

DEP0031 : ecdh.setPublicKey()

[Historique]

VersionModifications
v6.12.0Un code d’obsolescence a été attribué.
v5.2.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

La méthode ecdh.setPublicKey() est désormais obsolète, car son inclusion dans l’API n’est pas utile.

DEP0032 : Module node:domain

[Historique]

VersionModifications
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v1.4.2Obsolescence de documentation uniquement.

Type : Documentation uniquement

Le module domain est obsolète et ne doit pas être utilisé.

DEP0033 : EventEmitter.listenerCount()

[Historique]

VersionModifications
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v3.2.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

L’API events.listenerCount(emitter, eventName) est obsolète. Veuillez utiliser emitter.listenerCount(eventName) à la place.

DEP0034 : fs.exists(path, callback)

[Historique]

VersionModifications
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v1.0.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

L’API fs.exists(path, callback) est obsolète. Veuillez utiliser fs.stat() ou fs.access() à la place.

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

[Historique]

VersionModifications
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.4.7Dépréciation uniquement documentaire.

Type : Documentation uniquement

L’API fs.lchmod(path, mode, callback) est obsolète.

DEP0036: fs.lchmodSync(path, mode)

[Historique]

VersionModifications
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.4.7Dépréciation uniquement documentaire.

Type : Documentation uniquement

L’API fs.lchmodSync(path, mode) est obsolète.

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

[Historique]

VersionModifications
v10.6.0Dépréciation révoquée.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.4.7Dépréciation uniquement documentaire.

Type : Dépréciation révoquée

L’API fs.lchown(path, uid, gid, callback) était obsolète. La dépréciation a été révoquée car les API de support requises ont été ajoutées dans libuv.

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

[Historique]

VersionModifications
v10.6.0Dépréciation révoquée.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.4.7Dépréciation uniquement documentaire.

Type : Dépréciation révoquée

L’API fs.lchownSync(path, uid, gid) était obsolète. La dépréciation a été révoquée car les API de support requises ont été ajoutées dans libuv.

DEP0039: require.extensions

[Historique]

VersionModifications
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v0.10.6Dépréciation uniquement documentaire.

Type : Documentation uniquement

La propriété require.extensions est obsolète.

DEP0040: module node:punycode

[Historique]

VersionModifications
v21.0.0Dépréciation d’exécution.
v16.6.0Ajout du support pour --pending-deprecation.
v7.0.0Dépréciation uniquement documentaire.

Type : Exécution

Le module punycode est obsolète. Veuillez utiliser une alternative côté utilisateur à la place.

DEP0041 : Variable d’environnement NODE_REPL_HISTORY_FILE

[Historique]

VersionModifications
v10.0.0Fin de vie.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v3.0.0Obsolescence de documentation uniquement.

Type : Fin de vie

La variable d’environnement NODE_REPL_HISTORY_FILE a été supprimée. Veuillez plutôt utiliser NODE_REPL_HISTORY.

DEP0042 : tls.CryptoStream

[Historique]

VersionModifications
v10.0.0Fin de vie.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v0.11.3Obsolescence de documentation uniquement.

Type : Fin de vie

La classe tls.CryptoStream a été supprimée. Veuillez plutôt utiliser tls.TLSSocket.

DEP0043 : tls.SecurePair

[Historique]

VersionModifications
v8.0.0Obsolescence d’exécution.
v6.12.0Un code d’obsolescence a été attribué.
v6.0.0Obsolescence de documentation uniquement.
v0.11.15Obsolescence révoquée.
v0.11.3Obsolescence d’exécution.

Type : Documentation uniquement

La classe tls.SecurePair est obsolète. Veuillez plutôt utiliser tls.TLSSocket.

DEP0044 : util.isArray()

[Historique]

VersionModifications
v22.0.0Obsolescence d’exécution.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v4.0.0, v3.3.1Obsolescence de documentation uniquement.

Type : Exécution

L’API util.isArray() est obsolète. Veuillez plutôt utiliser Array.isArray().

DEP0045 : util.isBoolean()

[Historique]

VersionModifications
v23.0.0Obsolescence de fin de vie.
v22.0.0Obsolescence d’exécution.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v4.0.0, v3.3.1Obsolescence de documentation uniquement.

Type : Fin de vie

L’API util.isBoolean() a été supprimée. Veuillez plutôt utiliser typeof arg === 'boolean'.

DEP0046 : util.isBuffer()

[Historique]

VersionModifications
v23.0.0Obsolescence de fin de vie.
v22.0.0Obsolescence d’exécution.
v6.12.0, v4.8.6Un code d’obsolescence a été attribué.
v4.0.0, v3.3.1Obsolescence de documentation uniquement.

Type : Fin de vie

L’API util.isBuffer() a été supprimée. Veuillez plutôt utiliser Buffer.isBuffer().

DEP0047: util.isDate()

[Historique]

VersionChangements
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été assigné.
v4.0.0, v3.3.1Dépréciation de la documentation uniquement.

Type: Fin de vie

L'API util.isDate() a été supprimée. Veuillez utiliser arg instanceof Date à la place.

DEP0048: util.isError()

[Historique]

VersionChangements
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été assigné.
v4.0.0, v3.3.1Dépréciation de la documentation uniquement.

Type: Fin de vie

L'API util.isError() a été supprimée. Veuillez utiliser Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error à la place.

DEP0049: util.isFunction()

[Historique]

VersionChangements
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été assigné.
v4.0.0, v3.3.1Dépréciation de la documentation uniquement.

Type: Fin de vie

L'API util.isFunction() a été supprimée. Veuillez utiliser typeof arg === 'function' à la place.

DEP0050: util.isNull()

[Historique]

VersionChangements
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été assigné.
v4.0.0, v3.3.1Dépréciation de la documentation uniquement.

Type: Fin de vie

L'API util.isNull() a été supprimée. Veuillez utiliser arg === null à la place.

DEP0051: util.isNullOrUndefined()

[Historique]

VersionChangements
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été assigné.
v4.0.0, v3.3.1Dépréciation de la documentation uniquement.

Type: Fin de vie

L'API util.isNullOrUndefined() a été supprimée. Veuillez utiliser arg === null || arg === undefined à la place.

DEP0052 : util.isNumber()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v4.0.0, v3.3.1Dépréciation uniquement documentaire.

Type : Fin de vie

L'API util.isNumber() a été supprimée. Veuillez utiliser typeof arg === 'number' à la place.

DEP0053 : util.isObject()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v4.0.0, v3.3.1Dépréciation uniquement documentaire.

Type : Fin de vie

L'API util.isObject() a été supprimée. Veuillez utiliser arg && typeof arg === 'object' à la place.

DEP0054 : util.isPrimitive()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v4.0.0, v3.3.1Dépréciation uniquement documentaire.

Type : Fin de vie

L'API util.isPrimitive() a été supprimée. Veuillez utiliser arg === null || (typeof arg !=='object' && typeof arg !== 'function') à la place.

DEP0055 : util.isRegExp()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v4.0.0, v3.3.1Dépréciation uniquement documentaire.

Type : Fin de vie

L'API util.isRegExp() a été supprimée. Veuillez utiliser arg instanceof RegExp à la place.

DEP0056 : util.isString()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation à l'exécution.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v4.0.0, v3.3.1Dépréciation uniquement documentaire.

Type : Fin de vie

L'API util.isString() a été supprimée. Veuillez utiliser typeof arg === 'string' à la place.

DEP0057 : util.isSymbol()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation d’exécution.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v4.0.0, v3.3.1Dépréciation uniquement dans la documentation.

Type : Fin de vie

L’API util.isSymbol() a été supprimée. Veuillez utiliser typeof arg === 'symbol' à la place.

DEP0058 : util.isUndefined()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation d’exécution.
v6.12.0, v4.8.6Un code de dépréciation a été attribué.
v4.0.0, v3.3.1Dépréciation uniquement dans la documentation.

Type : Fin de vie

L’API util.isUndefined() a été supprimée. Veuillez utiliser arg === undefined à la place.

DEP0059 : util.log()

[Historique]

VersionModifications
v23.0.0Dépréciation en fin de vie.
v22.0.0Dépréciation d’exécution.
v6.12.0Un code de dépréciation a été attribué.
v6.0.0Dépréciation uniquement dans la documentation.

Type : Fin de vie

L’API util.log() a été supprimée car il s’agit d’une API héritée non maintenue qui a été exposée accidentellement à la zone utilisateur. Envisagez plutôt les alternatives suivantes en fonction de vos besoins spécifiques :

  • Bibliothèques de journalisation tierces
  • Utiliser console.log(new Date().toLocaleString(), message)

En adoptant l’une de ces alternatives, vous pouvez abandonner util.log() et choisir une stratégie de journalisation qui correspond aux exigences et à la complexité spécifiques de votre application.

DEP0060 : util._extend()

[Historique]

VersionModifications
v22.0.0Dépréciation d’exécution.
v6.12.0Un code de dépréciation a été attribué.
v6.0.0Dépréciation uniquement dans la documentation.

Type : Exécution

L’API util._extend() est dépréciée car il s’agit d’une API héritée non maintenue qui a été exposée accidentellement à la zone utilisateur. Veuillez utiliser target = Object.assign(target, source) à la place.

DEP0061: fs.SyncWriteStream

[Historique]

VersionChangements
v11.0.0Fin de vie.
v8.0.0Dépréciation à l'exécution.
v7.0.0Dépréciation uniquement dans la documentation.

Type : Fin de vie

La classe fs.SyncWriteStream n'a jamais été conçue pour être une API accessible au public et a été supprimée. Aucune API alternative n'est disponible. Veuillez utiliser une alternative en espace utilisateur.

DEP0062: node --debug

[Historique]

VersionChangements
v12.0.0Fin de vie.
v8.0.0Dépréciation à l'exécution.

Type : Fin de vie

--debug active l'ancienne interface de débogage V8, qui a été supprimée à partir de V8 5.8. Elle est remplacée par Inspector qui est activé avec --inspect à la place.

DEP0063: ServerResponse.prototype.writeHeader()

[Historique]

VersionChangements
v8.0.0Dépréciation uniquement dans la documentation.

Type : Uniquement dans la documentation

L'API ServerResponse.prototype.writeHeader() du module node:http est obsolète. Veuillez utiliser ServerResponse.prototype.writeHead() à la place.

La méthode ServerResponse.prototype.writeHeader() n'a jamais été documentée comme une API officiellement prise en charge.

DEP0064: tls.createSecurePair()

[Historique]

VersionChangements
v8.0.0Dépréciation à l'exécution.
v6.12.0Un code de dépréciation a été attribué.
v6.0.0Dépréciation uniquement dans la documentation.
v0.11.15Dépréciation révoquée.
v0.11.3Dépréciation à l'exécution.

Type : Exécution

L'API tls.createSecurePair() a été déclarée obsolète dans la documentation de Node.js 0.11.3. Les utilisateurs doivent utiliser tls.Socket à la place.

DEP0065: repl.REPL_MODE_MAGIC et NODE_REPL_MODE=magic

[Historique]

VersionChangements
v10.0.0Fin de vie.
v8.0.0Dépréciation uniquement dans la documentation.

Type : Fin de vie

La constante REPL_MODE_MAGIC du module node:repl, utilisée pour l'option replMode, a été supprimée. Son comportement est fonctionnellement identique à celui de REPL_MODE_SLOPPY depuis Node.js 6.0.0, lors de l'importation de V8 5.0. Veuillez utiliser REPL_MODE_SLOPPY à la place.

La variable d'environnement NODE_REPL_MODE est utilisée pour définir le replMode sous-jacent d'une session node interactive. Sa valeur, magic, est également supprimée. Veuillez utiliser sloppy à la place.

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

[Historique]

VersionModifications
v12.0.0Dépréciation d’exécution.
v8.0.0Dépréciation de la documentation uniquement.

Type : Exécution

Les propriétés OutgoingMessage.prototype._headers et OutgoingMessage.prototype._headerNames du module node:http sont obsolètes. Utilisez l’une des méthodes publiques (par exemple, OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader()) pour travailler avec les en-têtes sortants.

Les propriétés OutgoingMessage.prototype._headers et OutgoingMessage.prototype._headerNames n’ont jamais été documentées comme propriétés officiellement prises en charge.

DEP0067 : OutgoingMessage.prototype._renderHeaders

[Historique]

VersionModifications
v8.0.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement

L’API OutgoingMessage.prototype._renderHeaders() du module node:http est obsolète.

La propriété OutgoingMessage.prototype._renderHeaders n’a jamais été documentée comme une API officiellement prise en charge.

DEP0068 : node debug

[Historique]

VersionModifications
v15.0.0La commande node debug héritée a été supprimée.
v8.0.0Dépréciation d’exécution.

Type : Fin de vie

node debug correspond au débogueur CLI hérité qui a été remplacé par un débogueur CLI basé sur V8-inspector disponible via node inspect.

DEP0069 : vm.runInDebugContext(string)

[Historique]

VersionModifications
v10.0.0Fin de vie.
v9.0.0Dépréciation d’exécution.
v8.0.0Dépréciation de la documentation uniquement.

Type : Fin de vie

DebugContext a été supprimé dans V8 et n’est pas disponible dans Node.js 10+.

DebugContext était une API expérimentale.

DEP0070 : async_hooks.currentId()

[Historique]

VersionModifications
v9.0.0Fin de vie.
v8.2.0Dépréciation d’exécution.

Type : Fin de vie

async_hooks.currentId() a été renommé en async_hooks.executionAsyncId() pour plus de clarté.

Cette modification a été apportée alors que async_hooks était une API expérimentale.

DEP0071 : async_hooks.triggerId()

[Historique]

VersionModifications
v9.0.0Fin de vie.
v8.2.0Dépréciation lors de l’exécution.

Type : Fin de vie

async_hooks.triggerId() a été renommé en async_hooks.triggerAsyncId() pour plus de clarté.

Ce changement a été effectué alors que async_hooks était une API expérimentale.

DEP0072 : async_hooks.AsyncResource.triggerId()

[Historique]

VersionModifications
v9.0.0Fin de vie.
v8.2.0Dépréciation lors de l’exécution.

Type : Fin de vie

async_hooks.AsyncResource.triggerId() a été renommé en async_hooks.AsyncResource.triggerAsyncId() pour plus de clarté.

Ce changement a été effectué alors que async_hooks était une API expérimentale.

DEP0073 : Plusieurs propriétés internes de net.Server

[Historique]

VersionModifications
v10.0.0Fin de vie.
v9.0.0Dépréciation lors de l’exécution.

Type : Fin de vie

L’accès à plusieurs propriétés internes et non documentées des instances de net.Server avec des noms inappropriés est déprécié.

Comme l’API d’origine n’était pas documentée et n’était généralement pas utile pour le code non interne, aucune API de remplacement n’est fournie.

DEP0074 : REPLServer.bufferedCommand

[Historique]

VersionModifications
v15.0.0Fin de vie.
v9.0.0Dépréciation lors de l’exécution.

Type : Fin de vie

La propriété REPLServer.bufferedCommand a été dépréciée en faveur de REPLServer.clearBufferedCommand().

DEP0075 : REPLServer.parseREPLKeyword()

[Historique]

VersionModifications
v15.0.0Fin de vie.
v9.0.0Dépréciation lors de l’exécution.

Type : Fin de vie

REPLServer.parseREPLKeyword() a été supprimé de la visibilité de l’espace utilisateur.

DEP0076 : tls.parseCertString()

[Historique]

VersionModifications
v18.0.0Fin de vie.
v9.0.0Dépréciation lors de l’exécution.
v8.6.0Dépréciation de la documentation uniquement.

Type : Fin de vie

tls.parseCertString() était un assistant d’analyse trivial qui a été rendu public par erreur. Bien qu’il était censé analyser les chaînes de sujet et d’émetteur du certificat, il n’a jamais correctement géré les noms distinctifs relatifs à plusieurs valeurs.

Les versions antérieures de ce document suggéraient d’utiliser querystring.parse() comme alternative à tls.parseCertString(). Cependant, querystring.parse() ne gère pas non plus correctement tous les sujets de certificats et ne doit pas être utilisé.

DEP0077 : Module._debug()

[Historique]

VersionChangements
v9.0.0Obsolescence d’exécution.

Type : Exécution

Module._debug() est obsolète.

La fonction Module._debug() n’a jamais été documentée comme une API officiellement prise en charge.

DEP0078 : REPLServer.turnOffEditorMode()

[Historique]

VersionChangements
v15.0.0Fin de vie.
v9.0.0Obsolescence d’exécution.

Type : Fin de vie

REPLServer.turnOffEditorMode() a été supprimé de la visibilité de l’espace utilisateur.

DEP0079 : Fonction d’inspection personnalisée sur les objets via .inspect()

[Historique]

VersionChangements
v11.0.0Fin de vie.
v10.0.0Obsolescence d’exécution.
v8.7.0Obsolescence de documentation uniquement.

Type : Fin de vie

L’utilisation d’une propriété nommée inspect sur un objet pour spécifier une fonction d’inspection personnalisée pour util.inspect() est obsolète. Utilisez plutôt util.inspect.custom. Pour la rétrocompatibilité avec Node.js antérieur à la version 6.4.0, les deux peuvent être spécifiés.

DEP0080 : path._makeLong()

[Historique]

VersionChangements
v9.0.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

L’élément interne path._makeLong() n’était pas destiné à un usage public. Cependant, les modules de l’espace utilisateur l’ont trouvé utile. L’API interne est obsolète et remplacée par une méthode publique identique : path.toNamespacedPath().

DEP0081 : fs.truncate() utilisant un descripteur de fichier

[Historique]

VersionChangements
v9.0.0Obsolescence d’exécution.

Type : Exécution

L’utilisation de fs.truncate() fs.truncateSync() avec un descripteur de fichier est obsolète. Veuillez utiliser fs.ftruncate() ou fs.ftruncateSync() pour travailler avec les descripteurs de fichier.

DEP0082 : REPLServer.prototype.memory()

[Historique]

VersionChangements
v15.0.0Fin de vie.
v9.0.0Obsolescence d’exécution.

Type : Fin de vie

REPLServer.prototype.memory() est uniquement nécessaire pour le fonctionnement interne du REPLServer lui-même. N’utilisez pas cette fonction.

DEP0083: Désactivation de ECDH en définissant ecdhCurve sur false

[Historique]

VersionChangements
v10.0.0Fin de vie.
v9.2.0Dépréciation à l'exécution.

Type: Fin de vie.

L'option ecdhCurve de tls.createSecureContext() et tls.TLSSocket pouvait être définie sur false pour désactiver complètement ECDH sur le serveur uniquement. Ce mode a été déprécié en préparation de la migration vers OpenSSL 1.1.0 et pour assurer la cohérence avec le client, et n'est plus pris en charge. Utilisez plutôt le paramètre ciphers.

DEP0084: Exigence de dépendances internes groupées

[Historique]

VersionChangements
v12.0.0Cette fonctionnalité a été supprimée.
v10.0.0Dépréciation à l'exécution.

Type: Fin de vie

Depuis les versions 4.4.0 et 5.2.0 de Node.js, plusieurs modules destinés uniquement à un usage interne ont été exposés par erreur au code utilisateur via require(). Ces modules étaient :

  • 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 (à partir de 7.6.0)
  • node-inspect/lib/internal/inspect_client (à partir de 7.6.0)
  • node-inspect/lib/internal/inspect_repl (à partir de 7.6.0)

Les modules v8/* n'ont pas d'exportations et, s'ils ne sont pas importés dans un ordre spécifique, génèrent en fait des erreurs. En tant que tels, il n'y a pratiquement aucun cas d'utilisation légitime pour les importer via require().

D'autre part, node-inspect peut être installé localement via un gestionnaire de packages, car il est publié sur le registre npm sous le même nom. Aucune modification du code source n'est nécessaire si cela est fait.

DEP0085 : API sensible AsyncHooks

[Historique]

VersionChangements
v10.0.0Fin de vie.
v9.4.0, v8.10.0Dépréciation à l'exécution.

Type: Fin de vie

L'API sensible AsyncHooks n'a jamais été documentée et présentait divers problèmes mineurs. Utilisez plutôt l'API AsyncResource. Voir https://github.com/nodejs/node/issues/15572.

DEP0086 : Suppression de runInAsyncIdScope

[Historique]

VersionModifications
v10.0.0Fin de vie.
v9.4.0, v8.10.0Dépréciation d’exécution.

Type : Fin de vie

runInAsyncIdScope n’émet pas l’événement 'before' ou 'after' et peut donc causer de nombreux problèmes. Voir https://github.com/nodejs/node/issues/14328.

DEP0089 : require('node:assert')

[Historique]

VersionModifications
v12.8.0Dépréciation révoquée.
v9.9.0, v8.13.0Dépréciation de documentation uniquement.

Type : Dépréciation révoquée

L’importation directe d’assert n’était pas recommandée car les fonctions exposées utilisent des vérifications d’égalité relâchées. La dépréciation a été révoquée car l’utilisation du module node:assert n’est pas déconseillée, et la dépréciation a causé la confusion des développeurs.

DEP0090 : Longueurs de balise d’authentification GCM invalides

[Historique]

VersionModifications
v11.0.0Fin de vie.
v10.0.0Dépréciation d’exécution.

Type : Fin de vie

Node.js prenait en charge toutes les longueurs de balise d’authentification GCM acceptées par OpenSSL lors de l’appel de decipher.setAuthTag(). À partir de Node.js v11.0.0, seules les longueurs de balise d’authentification de 128, 120, 112, 104, 96, 64 et 32 bits sont autorisées. Les balises d’authentification d’autres longueurs sont invalides selon NIST SP 800-38D.

DEP0091 : crypto.DEFAULT_ENCODING

[Historique]

VersionModifications
v20.0.0Fin de vie.
v10.0.0Dépréciation d’exécution.

Type : Fin de vie

La propriété crypto.DEFAULT_ENCODING n’existait que pour la compatibilité avec les versions de Node.js antérieures aux versions 0.9.3 et a été supprimée.

DEP0092 : this de niveau supérieur lié à module.exports

[Historique]

VersionModifications
v10.0.0Dépréciation de documentation uniquement.

Type : Documentation uniquement

L’attribution de propriétés au this de niveau supérieur comme alternative à module.exports est dépréciée. Les développeurs doivent utiliser exports ou module.exports à la place.

DEP0093 : crypto.fips est obsolète et remplacé

[Historique]

VersionModifications
v23.0.0Obsolescence d’exécution.
v10.0.0Obsolescence de la documentation uniquement.

Type : Exécution

La propriété crypto.fips est obsolète. Veuillez plutôt utiliser crypto.setFips() et crypto.getFips().

DEP0094 : Utilisation de assert.fail() avec plus d’un argument

[Historique]

VersionModifications
v10.0.0Obsolescence d’exécution.

Type : Exécution

L’utilisation de assert.fail() avec plus d’un argument est obsolète. Utilisez assert.fail() avec un seul argument ou utilisez une autre méthode du module node:assert.

DEP0095 : timers.enroll()

[Historique]

VersionModifications
v10.0.0Obsolescence d’exécution.

Type : Exécution

timers.enroll() est obsolète. Veuillez plutôt utiliser les fonctions setTimeout() ou setInterval() documentées publiquement.

DEP0096 : timers.unenroll()

[Historique]

VersionModifications
v10.0.0Obsolescence d’exécution.

Type : Exécution

timers.unenroll() est obsolète. Veuillez plutôt utiliser les fonctions clearTimeout() ou clearInterval() documentées publiquement.

DEP0097 : MakeCallback avec propriété domain

[Historique]

VersionModifications
v10.0.0Obsolescence d’exécution.

Type : Exécution

Les utilisateurs de MakeCallback qui ajoutent la propriété domain pour transporter le contexte, devraient commencer à utiliser la variante async_context de MakeCallback ou CallbackScope, ou la classe de haut niveau AsyncResource.

DEP0098 : API d’intégration AsyncHooks AsyncResource.emitBefore et AsyncResource.emitAfter

[Historique]

VersionModifications
v12.0.0Fin de vie.
v10.0.0, v9.6.0, v8.12.0Obsolescence d’exécution.

Type : Fin de vie

L’API intégrée fournie par AsyncHooks expose les méthodes .emitBefore() et .emitAfter() qui sont très faciles à utiliser incorrectement, ce qui peut entraîner des erreurs irrécupérables.

Utilisez plutôt l’API asyncResource.runInAsyncScope() qui fournit une alternative beaucoup plus sûre et plus pratique. Voir https://github.com/nodejs/node/pull/18513.

DEP0099 : API C++ node::MakeCallback ignorant du contexte asynchrone

[Historique]

VersionModifications
v10.0.0Dépréciation au moment de la compilation.

Type : Au moment de la compilation

Certaines versions des API node::MakeCallback disponibles pour les extensions natives sont dépréciées. Veuillez utiliser les versions de l’API qui acceptent un paramètre async_context.

DEP0100 : process.assert()

[Historique]

VersionModifications
v23.0.0Fin de vie.
v10.0.0Dépréciation d’exécution.
v0.3.7Dépréciation de documentation uniquement.

Type : Fin de vie

process.assert() est déprécié. Veuillez utiliser le module assert à la place.

Il ne s’agissait pas d’une fonctionnalité documentée.

DEP0101 : --with-lttng

[Historique]

VersionModifications
v10.0.0Fin de vie.

Type : Fin de vie

L’option de compilation --with-lttng a été supprimée.

DEP0102 : Utilisation de noAssert dans les opérations Buffer#(read|write)

[Historique]

VersionModifications
v10.0.0Fin de vie.

Type : Fin de vie

L’utilisation de l’argument noAssert n’a plus aucune fonctionnalité. Toutes les entrées sont vérifiées, quelle que soit la valeur de noAssert. Le fait de sauter la vérification pourrait conduire à des erreurs et à des blocages difficiles à trouver.

DEP0103 : Vérifications de type process.binding('util').is[...]

[Historique]

VersionModifications
v10.9.0Remplacé par DEP0111.
v10.0.0Dépréciation de documentation uniquement.

Type : Documentation uniquement (prend en charge --pending-deprecation)

L’utilisation de process.binding() en général doit être évitée. Les méthodes de vérification de type en particulier peuvent être remplacées en utilisant util.types.

Cette dépréciation a été remplacée par la dépréciation de l’API process.binding() (DEP0111).

DEP0104 : Coercition de chaîne process.env

[Historique]

VersionModifications
v10.0.0Dépréciation de documentation uniquement.

Type : Documentation uniquement (prend en charge --pending-deprecation)

Lorsqu’une propriété non-chaîne est affectée à process.env, la valeur affectée est implicitement convertie en chaîne. Ce comportement est déprécié si la valeur affectée n’est pas une chaîne, un booléen ou un nombre. À l’avenir, une telle affectation pourrait entraîner une erreur. Veuillez convertir la propriété en une chaîne avant de l’affecter à process.env.

DEP0105 : decipher.finaltol

[Historique]

VersionModifications
v11.0.0Fin de vie.
v10.0.0Dépréciation au moment de l’exécution.

Type : Fin de vie

decipher.finaltol() n’a jamais été documentée et était un alias pour decipher.final(). Cette API a été supprimée, et il est recommandé d’utiliser decipher.final() à la place.

DEP0106 : crypto.createCipher et crypto.createDecipher

[Historique]

VersionModifications
v22.0.0Fin de vie.
v11.0.0Dépréciation au moment de l’exécution.
v10.0.0Dépréciation de la documentation uniquement.

Type : Fin de vie

crypto.createCipher() et crypto.createDecipher() ont été supprimés, car ils utilisent une fonction de dérivation de clé faible (MD5 sans sel) et des vecteurs d’initialisation statiques. Il est recommandé de dériver une clé en utilisant crypto.pbkdf2() ou crypto.scrypt() avec des sels aléatoires et d’utiliser crypto.createCipheriv() et crypto.createDecipheriv() pour obtenir respectivement les objets Cipher et Decipher.

DEP0107 : tls.convertNPNProtocols()

[Historique]

VersionModifications
v11.0.0Fin de vie.
v10.0.0Dépréciation au moment de l’exécution.

Type : Fin de vie

Il s’agissait d’une fonction d’assistance non documentée, non destinée à être utilisée en dehors du cœur de Node.js et obsolète suite à la suppression de la prise en charge de NPN (Next Protocol Negotiation).

DEP0108 : zlib.bytesRead

[Historique]

VersionModifications
v23.0.0Fin de vie.
v11.0.0Dépréciation au moment de l’exécution.
v10.0.0Dépréciation de la documentation uniquement.

Type : Fin de vie

Alias déprécié pour zlib.bytesWritten. Ce nom d’origine a été choisi, car il était également logique d’interpréter la valeur comme le nombre d’octets lus par le moteur, mais il est incompatible avec d’autres flux dans Node.js qui exposent des valeurs sous ces noms.

DEP0109 : Prise en charge de http, https et tls pour les URL invalides

[Historique]

VersionModifications
v16.0.0Fin de vie.
v11.0.0Dépréciation d’exécution.

Type : Fin de vie

Certaines URL précédemment prises en charge (mais strictement invalides) étaient acceptées via les API http.request(), http.get(), https.request(), https.get() et tls.checkServerIdentity() parce qu’elles étaient acceptées par l’ancienne API url.parse(). Les API mentionnées utilisent désormais l’analyseur URL WHATWG qui exige des URL strictement valides. Le passage d’une URL invalide est déconseillé et la prise en charge sera supprimée à l’avenir.

DEP0110 : Données mises en cache vm.Script

[Historique]

VersionModifications
v10.6.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement

L’option produceCachedData est déconseillée. Utilisez plutôt script.createCachedData().

DEP0111 : process.binding()

[Historique]

VersionModifications
v11.12.0Ajout de la prise en charge de --pending-deprecation.
v10.9.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement (prend en charge --pending-deprecation)

process.binding() est destiné à être utilisé uniquement par le code interne de Node.js.

Bien que process.binding() n’ait pas atteint le statut de fin de vie en général, il n’est pas disponible lorsque le modèle d’autorisation est activé.

DEP0112 : API privées dgram

[Historique]

VersionModifications
v11.0.0Dépréciation d’exécution.

Type : Exécution

Le module node:dgram contenait auparavant plusieurs API qui n’étaient jamais censées être accessibles en dehors du cœur de Node.js : Socket.prototype._handle, Socket.prototype._receiving, Socket.prototype._bindState, Socket.prototype._queue, Socket.prototype._reuseAddr, Socket.prototype._healthCheck(), Socket.prototype._stopReceiving() et dgram._createSocketHandle().

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

[Historique]

VersionModifications
v12.0.0Fin de vie.
v11.0.0Obsolescence d'exécution.

Type : Fin de vie

Cipher.setAuthTag() et Decipher.getAuthTag() ne sont plus disponibles. Ils n'ont jamais été documentés et généraient une erreur lors de leur appel.

DEP0114 : crypto._toBuf()

[Historique]

VersionModifications
v12.0.0Fin de vie.
v11.0.0Obsolescence d'exécution.

Type : Fin de vie

La fonction crypto._toBuf() n'était pas conçue pour être utilisée par des modules en dehors du cœur de Node.js et a été supprimée.

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

[Historique]

VersionModifications
v11.0.0Ajout d'une obsolescence de documentation uniquement avec la prise en charge de --pending-deprecation.

Type : Documentation uniquement (prend en charge --pending-deprecation)

Dans les versions récentes de Node.js, il n'y a aucune différence entre crypto.randomBytes() et crypto.pseudoRandomBytes(). Cette dernière est obsolète, ainsi que les alias non documentés crypto.prng() et crypto.rng(), au profit de crypto.randomBytes() et pourrait être supprimée dans une version future.

DEP0116 : API URL Legacy

[Historique]

VersionModifications
v19.0.0, v18.13.0url.parse() est à nouveau obsolète dans DEP0169.
v15.13.0, v14.17.0Obsolescence révoquée. Statut modifié en "Legacy".
v11.0.0Obsolescence de la documentation uniquement.

Type : Obsolescence révoquée

L'API URL Legacy est obsolète. Cela inclut url.format(), url.parse(), url.resolve(), et l'objet urlObject Legacy. Veuillez utiliser l'API WHATWG URL à la place.

DEP0117 : Gestionnaires natifs de cryptographie

[Historique]

VersionChangements
v12.0.0Fin de vie.
v11.0.0Dépréciation d’exécution.

Type : Fin de vie

Les versions précédentes de Node.js exposaient des gestionnaires à des objets natifs internes via la propriété _handle des classes Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign et Verify. La propriété _handle a été supprimée car une utilisation incorrecte de l’objet natif peut entraîner le plantage de l’application.

DEP0118 : Prise en charge de dns.lookup() pour un nom d’hôte faux

[Historique]

VersionChangements
v11.0.0Dépréciation d’exécution.

Type : Exécution

Les versions précédentes de Node.js prenaient en charge dns.lookup() avec un nom d’hôte faux comme dns.lookup(false) en raison de la rétrocompatibilité. Ce comportement n’est pas documenté et est considéré comme inutilisé dans les applications du monde réel. Cela deviendra une erreur dans les futures versions de Node.js.

DEP0119 : API privée process.binding('uv').errname()

[Historique]

VersionChangements
v11.0.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement (prend en charge --pending-deprecation)

process.binding('uv').errname() est déprécié. Veuillez plutôt utiliser util.getSystemErrorName().

DEP0120 : Prise en charge du compteur de performance Windows

[Historique]

VersionChangements
v12.0.0Fin de vie.
v11.0.0Dépréciation d’exécution.

Type : Fin de vie

La prise en charge du compteur de performance Windows a été supprimée de Node.js. Les fonctions non documentées COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST() et COUNTER_HTTP_CLIENT_RESPONSE() ont été dépréciées.

DEP0121 : net._setSimultaneousAccepts()

[Historique]

VersionChangements
v12.0.0Dépréciation d’exécution.

Type : Exécution

La fonction non documentée net._setSimultaneousAccepts() était initialement destinée au débogage et à l’optimisation des performances lors de l’utilisation des modules node:child_process et node:cluster sous Windows. La fonction n’est généralement pas utile et est en cours de suppression. Voir la discussion ici : https://github.com/nodejs/node/issues/18391

DEP0122 : tls Server.prototype.setOptions()

[Historique]

VersionModifications
v12.0.0Obsolescence d’exécution.

Type : Exécution

Veuillez utiliser Server.prototype.setSecureContext() à la place.

DEP0123 : définition du nom de serveur TLS sur une adresse IP

[Historique]

VersionModifications
v12.0.0Obsolescence d’exécution.

Type : Exécution

La définition du nom de serveur TLS sur une adresse IP n’est pas autorisée par la RFC 6066. Cela sera ignoré dans une version future.

DEP0124 : utilisation de REPLServer.rli

[Historique]

VersionModifications
v15.0.0Fin de vie.
v12.0.0Obsolescence d’exécution.

Type : Fin de vie

Cette propriété est une référence à l’instance elle-même.

DEP0125 : require('node:_stream_wrap')

[Historique]

VersionModifications
v12.0.0Obsolescence d’exécution.

Type : Exécution

Le module node:_stream_wrap est obsolète.

DEP0126 : timers.active()

[Historique]

VersionModifications
v11.14.0Obsolescence d’exécution.

Type : Exécution

La fonction timers.active(), qui n’était pas documentée auparavant, est obsolète. Veuillez utiliser la fonction timeout.refresh() qui est documentée publiquement à la place. Si une nouvelle référence au délai d’attente est nécessaire, la fonction timeout.ref() peut être utilisée sans impact sur les performances depuis Node.js 10.

DEP0127 : timers._unrefActive()

[Historique]

VersionModifications
v11.14.0Obsolescence d’exécution.

Type : Exécution

La fonction timers._unrefActive(), qui n’était pas documentée auparavant et qui était considérée comme « privée », est obsolète. Veuillez utiliser la fonction timeout.refresh() qui est documentée publiquement à la place. Si l’annulation de la référence au délai d’attente est nécessaire, la fonction timeout.unref() peut être utilisée sans impact sur les performances depuis Node.js 10.

DEP0128 : modules avec une entrée main invalide et un fichier index.js

[Historique]

VersionModifications
v16.0.0Obsolescence d’exécution.
v12.0.0Documentation uniquement.

Type : Exécution

Les modules qui ont une entrée main invalide (par exemple, ./does-not-exist.js) et qui ont également un fichier index.js dans le répertoire de niveau supérieur résoudront le fichier index.js. Cela est obsolète et entraînera une erreur dans les futures versions de Node.js.

DEP0129 : ChildProcess._channel

[Historique]

VersionModifications
v13.0.0Obsolescence à l’exécution.
v11.14.0Documentation uniquement.

Type : Exécution

La propriété _channel des objets de processus enfant retournés par spawn() et des fonctions similaires n’est pas destinée à un usage public. Utilisez ChildProcess.channel à la place.

DEP0130 : Module.createRequireFromPath()

[Historique]

VersionModifications
v16.0.0Fin de vie.
v13.0.0Obsolescence à l’exécution.
v12.2.0Documentation uniquement.

Type : Fin de vie

Utilisez module.createRequire() à la place.

DEP0131 : Analyseur HTTP hérité

[Historique]

VersionModifications
v13.0.0Cette fonctionnalité a été supprimée.
v12.22.0Obsolescence à l’exécution.
v12.3.0Documentation uniquement.

Type : Fin de vie

L’analyseur HTTP hérité, utilisé par défaut dans les versions de Node.js antérieures à 12.0.0, est obsolète et a été supprimé dans la v13.0.0. Avant la v13.0.0, l’indicateur de ligne de commande --http-parser=legacy pouvait être utilisé pour revenir à l’utilisation de l’analyseur hérité.

DEP0132 : worker.terminate() avec rappel

[Historique]

VersionModifications
v12.5.0Obsolescence à l’exécution.

Type : Exécution

Le passage d’un rappel à worker.terminate() est obsolète. Utilisez plutôt la Promise retournée, ou un écouteur à l’événement 'exit' du worker.

DEP0133 : http connection

[Historique]

VersionModifications
v12.12.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

Préférez response.socket à response.connection et request.socket à request.connection.

DEP0134 : process._tickCallback

[Historique]

VersionModifications
v12.12.0Obsolescence de documentation uniquement.

Type : Documentation uniquement (prend en charge --pending-deprecation)

La propriété process._tickCallback n’a jamais été documentée comme une API officiellement prise en charge.

DEP0135 : WriteStream.open() et ReadStream.open() sont internes

[Historique]

VersionModifications
v13.0.0Dépréciation à l’exécution.

Type : Exécution

WriteStream.open() et ReadStream.open() sont des API internes non documentées dont l’utilisation n’a pas de sens dans l’espace utilisateur. Les flux de fichiers doivent toujours être ouverts par le biais de leurs méthodes de création correspondantes fs.createWriteStream() et fs.createReadStream() ou en passant un descripteur de fichier dans les options.

DEP0136 : http finished

[Historique]

VersionModifications
v13.4.0, v12.16.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement

response.finished indique si response.end() a été appelé, et non si 'finish' a été émis et si les données sous-jacentes ont été vidées.

Utilisez plutôt response.writableFinished ou response.writableEnded en conséquence pour éviter toute ambiguïté.

Pour maintenir le comportement existant, response.finished doit être remplacé par response.writableEnded.

DEP0137 : Fermeture de fs.FileHandle lors du nettoyage de la mémoire

[Historique]

VersionModifications
v14.0.0Dépréciation à l’exécution.

Type : Exécution

Autoriser la fermeture d’un objet fs.FileHandle lors du nettoyage de la mémoire est déconseillé. À l’avenir, cela pourrait entraîner une erreur qui mettra fin au processus.

Veuillez vous assurer que tous les objets fs.FileHandle sont explicitement fermés à l’aide de FileHandle.prototype.close() lorsque le fs.FileHandle n’est plus nécessaire :

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

[Historique]

VersionModifications
v14.0.0Dépréciation uniquement documentaire.

Type : Uniquement documentaire

process.mainModule est une fonctionnalité propre à CommonJS alors que l’objet global process est partagé avec les environnements non-CommonJS. Son utilisation dans les modules ECMAScript n’est pas prise en charge.

Il est déprécié en faveur de require.main, car il sert le même objectif et n’est disponible que dans l’environnement CommonJS.

DEP0139 : process.umask() sans argument

[Historique]

VersionModifications
v14.0.0, v12.19.0Dépréciation uniquement documentaire.

Type : Uniquement documentaire

L’appel de process.umask() sans argument entraîne l’écriture deux fois du masque umask à l’échelle du processus. Cela introduit une situation de concurrence entre les threads, et constitue une vulnérabilité potentielle de sécurité. Il n’existe pas d’API alternative sûre et multiplateforme.

DEP0140 : Utiliser request.destroy() au lieu de request.abort()

[Historique]

VersionModifications
v14.1.0, v13.14.0Dépréciation uniquement documentaire.

Type : Uniquement documentaire

Utiliser request.destroy() au lieu de request.abort().

DEP0141 : repl.inputStream et repl.outputStream

[Historique]

VersionModifications
v14.3.0Uniquement documentaire (prend en charge [--pending-deprecation][]).

Type : Uniquement documentaire (prend en charge --pending-deprecation)

Le module node:repl exportait deux fois le flux d’entrée et de sortie. Utilisez .input au lieu de .inputStream et .output au lieu de .outputStream.

DEP0142 : repl._builtinLibs

[Historique]

VersionModifications
v14.3.0Uniquement documentaire (prend en charge [--pending-deprecation][]).

Type : Uniquement documentaire

Le module node:repl exporte une propriété _builtinLibs qui contient un tableau de modules intégrés. Elle était incomplète jusqu’à présent et il est préférable de s’appuyer sur require('node:module').builtinModules.

DEP0143: Transform._transformState

[Historique]

VersionModifications
v14.5.0Dépréciation d'exécution.

Type: Exécution Transform._transformState sera supprimé dans les versions futures car il ne sera plus nécessaire en raison de la simplification de l'implémentation.

DEP0144: module.parent

[Historique]

VersionModifications
v14.6.0, v12.19.0Dépréciation de la documentation uniquement.

Type: Documentation uniquement (prend en charge --pending-deprecation)

Un module CommonJS peut accéder au premier module qui l'a requis en utilisant module.parent. Cette fonctionnalité est dépréciée car elle ne fonctionne pas de manière cohérente en présence de modules ECMAScript et parce qu'elle donne une représentation inexacte du graphe de modules CommonJS.

Certains modules l'utilisent pour vérifier s'ils sont le point d'entrée du processus actuel. Au lieu de cela, il est recommandé de comparer require.main et module:

js
if (require.main === module) {
  // Section de code qui ne s'exécutera que si le fichier courant est le point d'entrée.
}

Lorsque vous recherchez les modules CommonJS qui ont requis le module actuel, require.cache et module.children peuvent être utilisés :

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

DEP0145: socket.bufferSize

[Historique]

VersionModifications
v14.6.0Dépréciation de la documentation uniquement.

Type: Documentation uniquement

socket.bufferSize n'est qu'un alias pour writable.writableLength.

DEP0146: new crypto.Certificate()

[Historique]

VersionModifications
v14.9.0Dépréciation de la documentation uniquement.

Type: Documentation uniquement

Le constructeur crypto.Certificate() est déprécié. Utilisez plutôt les méthodes statiques de crypto.Certificate().

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

[Historique]

VersionModifications
v16.0.0Dépréciation d'exécution.
v15.0.0Dépréciation d'exécution pour un comportement permissif.
v14.14.0Dépréciation de la documentation uniquement.

Type: Exécution

Dans les futures versions de Node.js, l'option recursive sera ignorée pour fs.rmdir, fs.rmdirSync et fs.promises.rmdir.

Utilisez plutôt fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) ou fs.promises.rm(path, { recursive: true, force: true }).

DEP0148 : Mappages de dossiers dans "exports" (barre oblique finale "/")

[Historique]

VersionModifications
v17.0.0Fin de vie.
v16.0.0Dépréciation d’exécution.
v15.1.0Dépréciation d’exécution pour les importations auto-référencées.
v14.13.0Dépréciation de la documentation uniquement.

Type : Exécution

L’utilisation d’une barre oblique finale "/" pour définir les mappages de dossiers de sous-chemin dans les champs exports de sous-chemin ou imports de sous-chemin est dépréciée. Utilisez plutôt des modèles de sous-chemin.

DEP0149 : http.IncomingMessage#connection

[Historique]

VersionModifications
v16.0.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement.

Préférez message.socket à message.connection.

DEP0150 : Modification de la valeur de process.config

[Historique]

VersionModifications
v19.0.0Fin de vie.
v16.0.0Dépréciation d’exécution.

Type : Fin de vie

La propriété process.config donne accès aux paramètres de compilation de Node.js. Cependant, la propriété est mutable et donc sujette à des manipulations. La possibilité de modifier la valeur sera supprimée dans une prochaine version de Node.js.

DEP0151 : Recherche d’index principal et recherche d’extension

[Historique]

VersionModifications
v16.0.0Dépréciation d’exécution.
v15.8.0, v14.18.0Dépréciation de la documentation uniquement avec prise en charge de --pending-deprecation.

Type : Exécution

Auparavant, les recherches index.js et les recherches d’extension s’appliquaient à la résolution du point d’entrée principal import 'pkg', même lors de la résolution des modules ES.

Avec cette dépréciation, toutes les résolutions du point d’entrée principal des modules ES nécessitent une entrée "exports" ou "main" explicite avec l’extension de fichier exacte.

DEP0152 : Propriétés Extension PerformanceEntry

[Historique]

VersionModifications
v16.0.0Dépréciation d’exécution.

Type : Exécution

Les types d’objets <PerformanceEntry> 'gc', 'http2' et 'http' ont des propriétés supplémentaires qui leur sont attribuées et qui fournissent des informations supplémentaires. Ces propriétés sont maintenant disponibles dans la propriété standard detail de l’objet PerformanceEntry. Les accesseurs existants ont été dépréciés et ne doivent plus être utilisés.

DEP0153 : Conversion de type des options dns.lookup et dnsPromises.lookup

[Historique]

VersionModifications
v18.0.0Fin de vie.
v17.0.0Dépréciation d’exécution.
v16.8.0Dépréciation uniquement dans la documentation.

Type : Fin de vie

L’utilisation d’une valeur non nulle et non entière pour l’option family, d’une valeur non nulle et non numérique pour l’option hints, d’une valeur non nulle et non booléenne pour l’option all ou d’une valeur non nulle et non booléenne pour l’option verbatim dans dns.lookup() et dnsPromises.lookup() lève une erreur ERR_INVALID_ARG_TYPE.

DEP0154 : Options de génération de paire de clés RSA-PSS

[Historique]

VersionModifications
v20.0.0Dépréciation d’exécution.
v16.10.0Dépréciation uniquement dans la documentation.

Type : Exécution

Les options 'hash' et 'mgf1Hash' sont remplacées par 'hashAlgorithm' et 'mgf1HashAlgorithm'.

DEP0155 : Barres obliques finales dans les résolutions de spécificateurs de motifs

[Historique]

VersionModifications
v17.0.0Dépréciation d’exécution.
v16.10.0Dépréciation uniquement dans la documentation avec prise en charge de --pending-deprecation.

Type : Exécution

Le remappage des spécificateurs se terminant par "/" comme import 'pkg/x/' est déprécié pour les résolutions de modèles "exports" et "imports" de paquet.

DEP0156 : Propriété .aborted et événement 'abort', 'aborted' dans http

[Historique]

VersionModifications
v17.0.0, v16.12.0Dépréciation uniquement dans la documentation.

Type : Uniquement dans la documentation

Passez plutôt à l’API <Stream>, car http.ClientRequest, http.ServerResponse et http.IncomingMessage sont tous basés sur des flux. Vérifiez stream.destroyed au lieu de la propriété .aborted et écoutez 'close' au lieu de l’événement 'abort', 'aborted'.

La propriété .aborted et l’événement 'abort' ne sont utiles que pour détecter les appels .abort(). Pour fermer une requête plus tôt, utilisez Stream.destroy([error]), puis vérifiez la propriété .destroyed et l’événement 'close' devraient avoir le même effet. L’extrémité réceptrice doit également vérifier la valeur readable.readableEnded sur http.IncomingMessage pour savoir s’il s’agissait d’une destruction avortée ou correcte.

DEP0157 : Prise en charge des « thenables » dans les flux

[Historique]

VersionModifications
v18.0.0Fin de vie.
v17.2.0, v16.14.0Dépréciation uniquement dans la documentation.

Type : Fin de vie

Une fonctionnalité non documentée des flux Node.js était la prise en charge des « thenables » dans les méthodes d’implémentation. Cette fonctionnalité est désormais obsolète. Utilisez plutôt des rappels et évitez d’utiliser une fonction asynchrone pour les méthodes d’implémentation des flux.

Cette fonctionnalité a causé des problèmes inattendus pour les utilisateurs qui implémentaient la fonction avec le style de rappel, mais utilisaient, par exemple, une méthode asynchrone qui provoquait une erreur, car le mélange des sémantiques de promesses et de rappels n’est pas valide.

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

DEP0158 : buffer.slice(start, end)

[Historique]

VersionModifications
v17.5.0, v16.15.0Dépréciation uniquement dans la documentation.

Type : Uniquement dans la documentation

Cette méthode a été déclarée obsolète, car elle n’est pas compatible avec Uint8Array.prototype.slice(), qui est une superclasse de Buffer.

Utilisez buffer.subarray qui fait la même chose à la place.

DEP0159 : ERR_INVALID_CALLBACK

[Historique]

VersionModifications
v18.0.0Fin de vie.

Type : Fin de vie

Ce code d’erreur a été supprimé, car il ajoutait davantage de confusion aux erreurs utilisées pour la validation du type de valeur.

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

[Historique]

VersionModifications
v18.0.0Dépréciation à l’exécution.
v17.6.0, v16.15.0Dépréciation uniquement dans la documentation.

Type : Exécution.

Cet événement a été déclaré obsolète, car il ne fonctionnait pas avec les combinateurs de promesses V8, ce qui diminuait son utilité.

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

[Historique]

VersionModifications
v17.6.0, v16.15.0Dépréciation uniquement dans la documentation.

Type : Uniquement dans la documentation

Les fonctions process._getActiveHandles() et process._getActiveRequests() ne sont pas destinées à un usage public et peuvent être supprimées dans les versions futures.

Utilisez process.getActiveResourcesInfo() pour obtenir la liste des types de ressources actives, et non les références réelles.

DEP0162 : fs.write(), fs.writeFileSync() conversion forcée en chaîne de caractères

[Historique]

VersionModifications
v19.0.0Fin de vie.
v18.0.0Dépréciation d'exécution.
v17.8.0, v16.15.0Dépréciation limitée à la documentation.

Type : Fin de vie

La conversion implicite d'objets avec leur propre propriété toString, passée comme second paramètre dans fs.write(), fs.writeFile(), fs.appendFile(), fs.writeFileSync() et fs.appendFileSync() est dépréciée. Convertissez-les en chaînes de caractères primitives.

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

[Historique]

VersionModifications
v18.7.0, v16.17.0Dépréciation limitée à la documentation.

Type : Dépréciation limitée à la documentation

Ces méthodes ont été dépréciées, car elles peuvent être utilisées d'une manière qui ne maintient pas la référence au canal active assez longtemps pour recevoir les événements.

Utilisez plutôt diagnostics_channel.subscribe(name, onMessage) ou diagnostics_channel.unsubscribe(name, onMessage) qui font la même chose.

DEP0164 : process.exit(code), process.exitCode conversion forcée en entier

[Historique]

VersionModifications
v20.0.0Fin de vie.
v19.0.0Dépréciation d'exécution.
v18.10.0, v16.18.0Dépréciation limitée à la documentation de la conversion forcée en entier de process.exitCode.
v18.7.0, v16.17.0Dépréciation limitée à la documentation de la conversion forcée en entier de process.exit(code).

Type : Fin de vie

Les valeurs autres que undefined, null, les nombres entiers et les chaînes de caractères entières (par ex. '1') sont dépréciées en tant que valeur pour le paramètre code dans process.exit() et comme valeur à affecter à process.exitCode.

DEP0165 : --trace-atomics-wait

[Historique]

VersionModifications
v23.0.0Fin de vie.
v22.0.0Dépréciation lors de l'exécution.
v18.8.0, v16.18.0Dépréciation uniquement dans la documentation.

Type : Fin de vie

L’option --trace-atomics-wait a été supprimée car elle utilise le hook V8 SetAtomicsWaitCallback, qui sera supprimé dans une future version de V8.

DEP0166 : Doubles barres obliques dans les cibles d’importation et d’exportation

[Historique]

VersionModifications
v19.0.0Dépréciation lors de l’exécution.
v18.10.0Dépréciation uniquement dans la documentation avec prise en charge de --pending-deprecation.

Type : Exécution

Les importations de packages et les cibles d’exportation qui correspondent à des chemins incluant une double barre oblique (de "/" ou "") sont dépréciées et échoueront avec une erreur de validation de résolution dans une version ultérieure. Cette même dépréciation s’applique également aux correspondances de motifs commençant ou se terminant par une barre oblique.

DEP0167 : Instances faibles de DiffieHellmanGroup (modp1, modp2, modp5)

[Historique]

VersionModifications
v18.10.0, v16.18.0Dépréciation uniquement dans la documentation.

Type : Uniquement dans la documentation

Les groupes MODP bien connus modp1, modp2 et modp5 sont dépréciés car ils ne sont pas sécurisés contre les attaques pratiques. Consultez la section 2.4 de la RFC 8247 pour plus de détails.

Ces groupes pourraient être supprimés dans de futures versions de Node.js. Les applications qui reposent sur ces groupes doivent évaluer l’utilisation de groupes MODP plus robustes.

DEP0168 : Exception non gérée dans les rappels de Node-API

[Historique]

VersionModifications
v18.3.0, v16.17.0Dépréciation lors de l’exécution.

Type : Exécution

La suppression implicite des exceptions non interceptées dans les rappels de Node-API est désormais dépréciée.

Définissez l’option --force-node-api-uncaught-exceptions-policy pour forcer Node.js à émettre un événement 'uncaughtException' si l’exception n’est pas gérée dans les rappels de Node-API.

DEP0169 : url.parse() non sécurisé

[Historique]

VersionModifications
v19.9.0, v18.17.0Ajout de la prise en charge de --pending-deprecation.
v19.0.0, v18.13.0Obsolescence de documentation uniquement.

Type : Documentation uniquement (prend en charge --pending-deprecation)

Le comportement de url.parse() n’est pas normalisé et est sujet à des erreurs qui ont des implications en matière de sécurité. Utilisez plutôt l’API URL WHATWG. Les CVE ne sont pas émises pour les vulnérabilités url.parse().

DEP0170 : Port non valide lors de l’utilisation de url.parse()

[Historique]

VersionModifications
v20.0.0Obsolescence d’exécution.
v19.2.0, v18.13.0Obsolescence de documentation uniquement.

Type : Exécution

url.parse() accepte les URL avec des ports qui ne sont pas des nombres. Ce comportement pourrait entraîner l’usurpation du nom d’hôte avec une entrée inattendue. Ces URL généreront une erreur dans les futures versions de Node.js, comme le fait déjà l’API URL WHATWG.

DEP0171 : Setters pour les en-têtes et les bandes-annonces http.IncomingMessage

[Historique]

VersionModifications
v19.3.0, v18.13.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

Dans une future version de Node.js, message.headers, message.headersDistinct, message.trailers, et message.trailersDistinct seront en lecture seule.

DEP0172 : La propriété asyncResource des fonctions liées AsyncResource

[Historique]

VersionModifications
v20.0.0Obsolescence d’exécution.

Type : Exécution

Dans une future version de Node.js, la propriété asyncResource ne sera plus ajoutée lorsqu’une fonction est liée à un AsyncResource.

DEP0173 : La classe assert.CallTracker

[Historique]

VersionModifications
v20.1.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

Dans une future version de Node.js, assert.CallTracker sera supprimé. Envisagez d’utiliser d’autres solutions telles que la fonction d’assistance mock.

DEP0174 : appeler promisify sur une fonction qui retourne une Promise

[Historique]

VersionModifications
v21.0.0Dépréciation d’exécution.
v20.8.0Dépréciation de documentation uniquement.

Type : Exécution

Appeler util.promisify sur une fonction qui retourne une

DEP0175 : util.toUSVString

[Historique]

VersionModifications
v20.8.0Dépréciation de documentation uniquement.

Type : Documentation uniquement

L’API util.toUSVString() est dépréciée. Veuillez utiliser String.prototype.toWellFormed à la place.

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

[Historique]

VersionModifications
v20.8.0Dépréciation de documentation uniquement.

Type : Documentation uniquement

Les accesseurs F_OK, R_OK, W_OK et X_OK exposés directement sur node:fs sont dépréciés. Veuillez les obtenir à partir de fs.constants ou fs.promises.constants à la place.

DEP0177 : util.types.isWebAssemblyCompiledModule

[Historique]

VersionModifications
v21.7.0, v20.12.0Fin de vie.
v21.3.0, v20.11.0Un code de dépréciation a été attribué.
v14.0.0Dépréciation de documentation uniquement.

Type : Fin de vie

L’API util.types.isWebAssemblyCompiledModule a été supprimée. Veuillez utiliser value instanceof WebAssembly.Module à la place.

DEP0178 : dirent.path

[Historique]

VersionModifications
v23.0.0Dépréciation d’exécution.
v21.5.0, v20.12.0, v18.20.0Dépréciation de documentation uniquement.

Type : Exécution

La propriété dirent.path est dépréciée en raison de son manque de cohérence entre les lignes de version. Veuillez utiliser dirent.parentPath à la place.

DEP0179 : Constructeur Hash

[Historique]

VersionModifications
v22.0.0Dépréciation d’exécution.
v21.5.0, v20.12.0Dépréciation de documentation uniquement.

Type : Exécution

L’appel direct de la classe Hash avec Hash() ou new Hash() est déprécié car il s’agit d’éléments internes, qui ne sont pas destinés à un usage public. Veuillez utiliser la méthode crypto.createHash() pour créer des instances Hash.

DEP0180 : Constructeur fs.Stats

[Historique]

VersionModifications
v22.0.0Obsolescence d’exécution.
v20.13.0Obsolescence de documentation uniquement.

Type : Exécution

L’appel direct de la classe fs.Stats avec Stats() ou new Stats() est obsolète, car il s’agit d’éléments internes et non destinés à un usage public.

DEP0181 : Constructeur Hmac

[Historique]

VersionModifications
v22.0.0Obsolescence d’exécution.
v20.13.0Obsolescence de documentation uniquement.

Type : Exécution

L’appel direct de la classe Hmac avec Hmac() ou new Hmac() est obsolète, car il s’agit d’éléments internes et non destinés à un usage public. Veuillez utiliser la méthode crypto.createHmac() pour créer des instances Hmac.

DEP0182 : Balises d’authentification GCM courtes sans authTagLength explicite

[Historique]

VersionModifications
v23.0.0Obsolescence d’exécution.
v20.13.0Obsolescence de documentation uniquement.

Type : Exécution

Les applications qui ont l’intention d’utiliser des balises d’authentification plus courtes que la longueur de balise d’authentification par défaut doivent définir l’option authTagLength de la fonction crypto.createDecipheriv() sur la longueur appropriée.

Pour les chiffrements en mode GCM, la fonction decipher.setAuthTag() accepte les balises d’authentification de toute longueur valide (voir DEP0090). Ce comportement est obsolète afin de mieux s’aligner sur les recommandations de la NIST SP 800-38D.

DEP0183 : API basées sur le moteur OpenSSL

[Historique]

VersionModifications
v22.4.0, v20.16.0Obsolescence de documentation uniquement.

Type : Documentation uniquement

OpenSSL 3 a rendu obsolète la prise en charge des moteurs personnalisés avec une recommandation de passer à son nouveau modèle de fournisseur. L’option clientCertEngine pour https.request(), tls.createSecureContext() et tls.createServer() ; privateKeyEngine et privateKeyIdentifier pour tls.createSecureContext() ; et crypto.setEngine() dépendent tous de cette fonctionnalité d’OpenSSL.

DEP0184 : Instanciation des classes node:zlib sans new

[Historique]

VersionModifications
v22.9.0, v20.18.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement

L’instanciation des classes sans le qualificateur new exporté par le module node:zlib est obsolète. Il est recommandé d’utiliser à la place le qualificateur new. Cela s’applique à toutes les classes Zlib, telles que Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip et Zlib.

DEP0185 : Instanciation des classes node:repl sans new

[Historique]

VersionModifications
v22.9.0, v20.18.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement

L’instanciation des classes sans le qualificateur new exporté par le module node:repl est obsolète. Il est recommandé d’utiliser à la place le qualificateur new. Cela s’applique à toutes les classes REPL, y compris REPLServer et Recoverable.

DEP0187 : Transmission de types d’arguments non valides à fs.existsSync

[Historique]

VersionModifications
v23.4.0Documentation uniquement.

Type : Documentation uniquement

La transmission de types d’arguments non pris en charge est obsolète et, au lieu de renvoyer false, lèvera une erreur dans une version ultérieure.

DEP0188 : process.features.ipv6 et process.features.uv

[Historique]

VersionModifications
v23.4.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement

Ces propriétés sont inconditionnellement true. Tous les contrôles basés sur ces propriétés sont redondants.

DEP0189 : process.features.tls_*

[Historique]

VersionModifications
v23.4.0Dépréciation de la documentation uniquement.

Type : Documentation uniquement

process.features.tls_alpn, process.features.tls_ocsp et process.features.tls_sni sont obsolètes, car leurs valeurs sont garanties comme étant identiques à celles de process.features.tls.