Skip to content

Veraltete APIs

Node.js APIs können aus folgenden Gründen veraltet sein:

  • Die Verwendung der API ist unsicher.
  • Eine verbesserte alternative API ist verfügbar.
  • Es werden Breaking Changes an der API in einem zukünftigen Major Release erwartet.

Node.js verwendet vier Arten von Veraltungshinweisen:

  • Nur Dokumentation
  • Anwendung (nur Code außerhalb von node_modules)
  • Laufzeit (ganzer Code)
  • Ende des Lebenszyklus (End-of-Life)

Eine nur in der Dokumentation erwähnte Veraltung wird nur in der Node.js API-Dokumentation ausgedrückt. Diese erzeugt keine Nebeneffekte während der Ausführung von Node.js. Einige nur in der Dokumentation erwähnte Veraltungshinweise lösen eine Laufzeitwarnung aus, wenn sie mit dem Flag --pending-deprecation (oder der alternativen Umgebungsvariablen NODE_PENDING_DEPRECATION=1) gestartet werden, ähnlich wie Laufzeit-Veraltungshinweise unten. Nur in der Dokumentation erwähnte Veraltungshinweise, die dieses Flag unterstützen, sind in der Liste der veralteten APIs explizit als solche gekennzeichnet.

Eine Anwendungs-Veraltung nur für Code außerhalb von node_modules erzeugt standardmäßig eine Prozesswarnung, die beim ersten Aufruf der veralteten API in Code, der nicht aus node_modules geladen wird, auf stderr ausgegeben wird. Wenn das Befehlszeilenflag --throw-deprecation verwendet wird, löst eine Laufzeit-Veraltung einen Fehler aus. Wenn --pending-deprecation verwendet wird, werden auch Warnungen für Code ausgegeben, der aus node_modules geladen wird.

Eine Laufzeit-Veraltung für allen Code ähnelt der Laufzeit-Veraltung für Code außerhalb von node_modules, außer dass sie auch eine Warnung für Code ausgibt, der aus node_modules geladen wird.

Eine End-of-Life-Veraltung wird verwendet, wenn Funktionen aus Node.js entfernt wurden oder bald entfernt werden.

Rücknahme von Veraltungshinweisen

Gelegentlich kann die Veraltung einer API rückgängig gemacht werden. In solchen Fällen wird dieses Dokument mit Informationen zu der Entscheidung aktualisiert. Die Veraltungskennung wird jedoch nicht geändert.

Liste der veralteten APIs

DEP0001: http.OutgoingMessage.prototype.flush

[Verlauf]

VersionÄnderungen
v14.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Veraltungscode wurde zugewiesen.
v1.6.0Laufzeit-Veraltung.

Typ: Ende des Lebenszyklus

OutgoingMessage.prototype.flush() wurde entfernt. Verwenden Sie stattdessen OutgoingMessage.prototype.flushHeaders().

[Historie]

VersionÄnderungen
v8.0.0Ende des Lebenszyklus.
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v5.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Das Modul _linklist ist veraltet. Bitte verwenden Sie eine Alternative aus dem Userland.

DEP0003: _writableState.buffer

[Historie]

VersionÄnderungen
v14.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.11.15Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

_writableState.buffer wurde entfernt. Verwenden Sie stattdessen _writableState.getBuffer().

DEP0004: CryptoStream.prototype.readyState

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.4.0Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die Eigenschaft CryptoStream.prototype.readyState wurde entfernt.

DEP0005: Buffer() Konstruktor

[Historie]

VersionÄnderungen
v10.0.0Laufzeit-Deprecation.
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v6.0.0Nur Dokumentations-Deprecation.

Typ: Anwendung (nur Code außerhalb von node_modules)

Die Funktion Buffer() und der Konstruktor new Buffer() sind aufgrund von API-Benutzbarkeitsproblemen, die zu versehentlichen Sicherheitsproblemen führen können, veraltet.

Als Alternative verwenden Sie eine der folgenden Methoden zum Erstellen von Buffer-Objekten:

Ohne --pending-deprecation treten Laufzeitwarnungen nur für Code außerhalb von node_modules auf. Das bedeutet, dass es keine Deprecation-Warnungen für die Verwendung von Buffer() in Abhängigkeiten geben wird. Mit --pending-deprecation führt eine Laufzeitwarnung unabhängig davon, wo die Buffer()-Verwendung stattfindet.

DEP0006: child_process options.customFds

[Historie]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.11.14Laufzeit-Deprecation.
v0.5.10Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Innerhalb der Methoden spawn(), fork() und exec() des Moduls child_process ist die Option options.customFds veraltet. Stattdessen sollte die Option options.stdio verwendet werden.

DEP0007: Ersetzen Sie cluster worker.suicide durch worker.exitedAfterDisconnect

[Historie]

VersionÄnderungen
v9.0.0Ende des Lebenszyklus.
v7.0.0Laufzeit-Deprecation.
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v6.0.0Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

In einer früheren Version von Node.js cluster wurde dem Worker-Objekt eine boolesche Eigenschaft mit dem Namen suicide hinzugefügt. Die Absicht dieser Eigenschaft war es, einen Hinweis darauf zu geben, wie und warum die Worker-Instanz beendet wurde. In Node.js 6.0.0 wurde die alte Eigenschaft veraltet und durch eine neue Eigenschaft worker.exitedAfterDisconnect ersetzt. Der alte Eigenschaftsname beschrieb die tatsächliche Semantik nicht genau und war unnötig emotional aufgeladen.

DEP0008: require('node:constants')

[Historie]

VersionÄnderungen
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v6.3.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Das Modul node:constants ist veraltet. Wenn Entwickler Zugriff auf Konstanten benötigen, die für bestimmte integrierte Node.js-Module relevant sind, sollten sie stattdessen auf die Eigenschaft constants verweisen, die vom jeweiligen Modul bereitgestellt wird. Zum Beispiel require('node:fs').constants und require('node:os').constants.

DEP0009: crypto.pbkdf2 ohne Digest

[Historie]

VersionÄnderungen
v14.0.0Ende des Lebenszyklus (für digest === null).
v11.0.0Laufzeit-Deprecation (für digest === null).
v8.0.0Ende des Lebenszyklus (für digest === undefined).
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v6.0.0Laufzeit-Deprecation (für digest === undefined).

Typ: Ende des Lebenszyklus

Die Verwendung der API crypto.pbkdf2() ohne Angabe eines Digests wurde in Node.js 6.0 veraltet, da die Methode standardmäßig den nicht empfohlenen Digest 'SHA1' verwendet hat. Zuvor wurde eine Deprecation-Warnung ausgegeben. Ab Node.js 8.0.0 löst der Aufruf von crypto.pbkdf2() oder crypto.pbkdf2Sync() mit digest auf undefined einen TypeError aus.

Ab Node.js v11.0.0 würde der Aufruf dieser Funktionen mit digest auf null eine Deprecation-Warnung ausgeben, um das Verhalten bei digest als undefined abzugleichen.

Nun löst jedoch die Übergabe von undefined oder null einen TypeError aus.

DEP0010: crypto.createCredentials

[Historie]

VersionÄnderungen
v11.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.11.13Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Die API crypto.createCredentials() wurde entfernt. Bitte verwenden Sie stattdessen tls.createSecureContext().

DEP0011: crypto.Credentials

[Historie]

VersionÄnderungen
v11.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.11.13Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Die Klasse crypto.Credentials wurde entfernt. Bitte verwenden Sie stattdessen tls.SecureContext.

DEP0012: Domain.dispose

[Historie]

VersionÄnderungen
v9.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.11.7Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Domain.dispose() wurde entfernt. Stellen Sie sich stattdessen explizit über Fehlerereignis-Handler, die an der Domäne festgelegt sind, von fehlgeschlagenen E/A-Aktionen wieder her.

DEP0013: Asynchrone fs-Funktion ohne Callback

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v7.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Das Aufrufen einer asynchronen Funktion ohne Callback löst ab Node.js 10.0.0 einen TypeError aus. Siehe https://github.com/nodejs/node/pull/12562.

DEP0014: fs.read Legacy-String-Schnittstelle

[Historie]

VersionÄnderungen
v8.0.0Ende des Lebenszyklus.
v6.0.0Laufzeit-Deprecation.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.1.96Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die Legacy-String-Schnittstelle von fs.read() ist veraltet. Verwenden Sie stattdessen die Buffer-API, wie in der Dokumentation erwähnt.

DEP0015: fs.readSync Legacy-String-Schnittstelle

[Historie]

VersionÄnderungen
v8.0.0Ende des Lebenszyklus.
v6.0.0Laufzeit-Deprecation.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.1.96Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die Legacy-String-Schnittstelle von fs.readSync() ist veraltet. Verwenden Sie stattdessen die Buffer-API, wie in der Dokumentation erwähnt.

DEP0016: GLOBAL/root

[History]

VersionÄnderungen
v14.0.0Ende des Lebenszyklus.
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v6.0.0Runtime-Deprecation.

Typ: Ende des Lebenszyklus

Die Aliase GLOBAL und root für die Eigenschaft global wurden in Node.js 6.0.0 als veraltet markiert und wurden seitdem entfernt.

DEP0017: Intl.v8BreakIterator

[History]

VersionÄnderungen
v9.0.0Ende des Lebenszyklus.
v7.0.0Runtime-Deprecation.

Typ: Ende des Lebenszyklus

Intl.v8BreakIterator war eine nicht standardisierte Erweiterung und wurde entfernt. Siehe Intl.Segmenter.

DEP0018: Nicht behandelte Promise-Ablehnungen

[History]

VersionÄnderungen
v15.0.0Ende des Lebenszyklus.
v7.0.0Runtime-Deprecation.

Typ: Ende des Lebenszyklus

Nicht behandelte Promise-Ablehnungen sind veraltet. Standardmäßig beenden Promise-Ablehnungen, die nicht behandelt werden, den Node.js-Prozess mit einem von Null verschiedenen Exit-Code. Um die Behandlung nicht behandelter Ablehnungen durch Node.js zu ändern, verwenden Sie die Befehlszeilenoption --unhandled-rejections.

DEP0019: require('.') außerhalb des Verzeichnisses aufgelöst

[History]

VersionÄnderungen
v12.0.0Funktionalität entfernt.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v1.8.1Runtime-Deprecation.

Typ: Ende des Lebenszyklus

In bestimmten Fällen konnte require('.') außerhalb des Paketverzeichnisses aufgelöst werden. Dieses Verhalten wurde entfernt.

DEP0020: Server.connections

[History]

VersionÄnderungen
v15.0.0Server.connections wurde entfernt.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.9.7Runtime-Deprecation.

Typ: Ende des Lebenszyklus

Die Eigenschaft Server.connections wurde in Node.js v0.9.7 als veraltet markiert und wurde entfernt. Bitte verwenden Sie stattdessen die Methode Server.getConnections().

DEP0021: Server.listenFD

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.7.12Runtime-Deprecation.

Typ: Ende des Lebenszyklus

Die Methode Server.listenFD() wurde als veraltet markiert und entfernt. Bitte verwenden Sie stattdessen Server.listen({fd: \<number\>}).

DEP0022: os.tmpDir()

[History]

VersionÄnderungen
v14.0.0Ende des Lebenszyklus.
v7.0.0Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

Die os.tmpDir() API wurde in Node.js 7.0.0 als veraltet markiert und wurde seitdem entfernt. Bitte verwenden Sie stattdessen os.tmpdir().

DEP0023: os.getNetworkInterfaces()

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Veraltungscode wurde zugewiesen.
v0.6.0Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

Die Methode os.getNetworkInterfaces() ist veraltet. Bitte verwenden Sie stattdessen die Methode os.networkInterfaces().

DEP0024: REPLServer.prototype.convertToContext()

[History]

VersionÄnderungen
v9.0.0Ende des Lebenszyklus.
v7.0.0Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

Die REPLServer.prototype.convertToContext() API wurde entfernt.

DEP0025: require('node:sys')

[History]

VersionÄnderungen
v6.12.0, v4.8.6Ein Veraltungscode wurde zugewiesen.
v1.0.0Laufzeit-Veralterung.

Typ: Laufzeit

Das Modul node:sys ist veraltet. Bitte verwenden Sie stattdessen das Modul util.

DEP0026: util.print()

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Veraltungscode wurde zugewiesen.
v0.11.3Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

util.print() wurde entfernt. Bitte verwenden Sie stattdessen console.log().

DEP0027: util.puts()

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Veraltungscode wurde zugewiesen.
v0.11.3Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

util.puts() wurde entfernt. Bitte verwenden Sie stattdessen console.log().

DEP0028: util.debug()

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Veraltungscode wurde zugewiesen.
v0.11.3Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

util.debug() wurde entfernt. Bitte verwenden Sie stattdessen console.error().

DEP0029: util.error()

[Historie]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.11.3Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

util.error() wurde entfernt. Bitte verwenden Sie stattdessen console.error().

DEP0030: SlowBuffer

[Historie]

VersionÄnderungen
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v6.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die Klasse SlowBuffer ist veraltet. Bitte verwenden Sie stattdessen Buffer.allocUnsafeSlow(size).

DEP0031: ecdh.setPublicKey()

[Historie]

VersionÄnderungen
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v5.2.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die Methode ecdh.setPublicKey() ist veraltet, da ihre Aufnahme in die API nicht sinnvoll ist.

DEP0032: node:domain Modul

[Historie]

VersionÄnderungen
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v1.4.2Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Das Modul domain ist veraltet und sollte nicht verwendet werden.

DEP0033: EventEmitter.listenerCount()

[Historie]

VersionÄnderungen
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v3.2.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die API events.listenerCount(emitter, eventName) ist veraltet. Bitte verwenden Sie stattdessen emitter.listenerCount(eventName).

DEP0034: fs.exists(path, callback)

[Historie]

VersionÄnderungen
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v1.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die API fs.exists(path, callback) ist veraltet. Bitte verwenden Sie stattdessen fs.stat() oder fs.access().

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

[History]

VersionÄnderungen
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.4.7Nur Dokumentations-Deprecation.

Type: Nur Dokumentation

Die fs.lchmod(path, mode, callback) API ist veraltet.

DEP0036: fs.lchmodSync(path, mode)

[History]

VersionÄnderungen
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.4.7Nur Dokumentations-Deprecation.

Type: Nur Dokumentation

Die fs.lchmodSync(path, mode) API ist veraltet.

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

[History]

VersionÄnderungen
v10.6.0Deprecation aufgehoben.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.4.7Nur Dokumentations-Deprecation.

Type: Deprecation aufgehoben

Die fs.lchown(path, uid, gid, callback) API war veraltet. Die Deprecation wurde aufgehoben, da die erforderlichen unterstützenden APIs in libuv hinzugefügt wurden.

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

[History]

VersionÄnderungen
v10.6.0Deprecation aufgehoben.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.4.7Nur Dokumentations-Deprecation.

Type: Deprecation aufgehoben

Die fs.lchownSync(path, uid, gid) API war veraltet. Die Deprecation wurde aufgehoben, da die erforderlichen unterstützenden APIs in libuv hinzugefügt wurden.

DEP0039: require.extensions

[History]

VersionÄnderungen
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.10.6Nur Dokumentations-Deprecation.

Type: Nur Dokumentation

Die require.extensions Eigenschaft ist veraltet.

DEP0040: node:punycode Modul

[History]

VersionÄnderungen
v21.0.0Runtime-Deprecation.
v16.6.0Unterstützung für --pending-deprecation hinzugefügt.
v7.0.0Nur Dokumentations-Deprecation.

Type: Runtime

Das punycode Modul ist veraltet. Bitte verwenden Sie stattdessen eine Alternative aus dem Userland.

DEP0041: Umgebungsvariable NODE_REPL_HISTORY_FILE

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v3.0.0Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die Umgebungsvariable NODE_REPL_HISTORY_FILE wurde entfernt. Bitte verwenden Sie stattdessen NODE_REPL_HISTORY.

DEP0042: tls.CryptoStream

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v0.11.3Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die Klasse tls.CryptoStream wurde entfernt. Bitte verwenden Sie stattdessen tls.TLSSocket.

DEP0043: tls.SecurePair

[Historie]

VersionÄnderungen
v8.0.0Laufzeit-Deprecation.
v6.12.0Ein Deprecation-Code wurde zugewiesen.
v6.0.0Nur Dokumentations-Deprecation.
v0.11.15Deprecation widerrufen.
v0.11.3Laufzeit-Deprecation.

Typ: Nur Dokumentation

Die Klasse tls.SecurePair ist veraltet. Bitte verwenden Sie stattdessen tls.TLSSocket.

DEP0044: util.isArray()

[Historie]

VersionÄnderungen
v22.0.0Laufzeit-Deprecation.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Deprecation.

Typ: Laufzeit

Die API util.isArray() ist veraltet. Bitte verwenden Sie stattdessen Array.isArray().

DEP0045: util.isBoolean()

[Historie]

VersionÄnderungen
v23.0.0Ende des Lebenszyklus.
v22.0.0Laufzeit-Deprecation.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die util.isBoolean() API wurde entfernt. Bitte verwenden Sie stattdessen typeof arg === 'boolean'.

DEP0046: util.isBuffer()

[Historie]

VersionÄnderungen
v23.0.0Ende des Lebenszyklus.
v22.0.0Laufzeit-Deprecation.
v6.12.0, v4.8.6Ein Deprecation-Code wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die util.isBuffer() API wurde entfernt. Bitte verwenden Sie stattdessen Buffer.isBuffer().

DEP0047: util.isDate()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isDate() API wurde entfernt. Bitte verwenden Sie stattdessen arg instanceof Date.

DEP0048: util.isError()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isError() API wurde entfernt. Bitte verwenden Sie stattdessen Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error.

DEP0049: util.isFunction()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isFunction() API wurde entfernt. Bitte verwenden Sie stattdessen typeof arg === 'function'.

DEP0050: util.isNull()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isNull() API wurde entfernt. Bitte verwenden Sie stattdessen arg === null.

DEP0051: util.isNullOrUndefined()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isNullOrUndefined() API wurde entfernt. Bitte verwenden Sie stattdessen arg === null || arg === undefined.

DEP0052: util.isNumber()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isNumber() API wurde entfernt. Bitte verwenden Sie stattdessen typeof arg === 'number'.

DEP0053: util.isObject()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isObject() API wurde entfernt. Bitte verwenden Sie stattdessen arg && typeof arg === 'object'.

DEP0054: util.isPrimitive()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isPrimitive() API wurde entfernt. Bitte verwenden Sie stattdessen arg === null || (typeof arg !=='object' && typeof arg !== 'function').

DEP0055: util.isRegExp()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isRegExp() API wurde entfernt. Bitte verwenden Sie stattdessen arg instanceof RegExp.

DEP0056: util.isString()

[Historie]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isString() API wurde entfernt. Bitte verwenden Sie stattdessen typeof arg === 'string'.

DEP0057: util.isSymbol()

[History]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isSymbol() API wurde entfernt. Bitte verwenden Sie stattdessen typeof arg === 'symbol'.

DEP0058: util.isUndefined()

[History]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0, v4.8.6Ein Abkündigungscode wurde zugewiesen.
v4.0.0, v3.3.1Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.isUndefined() API wurde entfernt. Bitte verwenden Sie stattdessen arg === undefined.

DEP0059: util.log()

[History]

VersionÄnderungen
v23.0.0End-of-Life-Abkündigung.
v22.0.0Laufzeit-Abkündigung.
v6.12.0Ein Abkündigungscode wurde zugewiesen.
v6.0.0Nur Dokumentations-Abkündigung.

Typ: End-of-Life

Die util.log() API wurde entfernt, da es sich um eine nicht gewartete Legacy-API handelt, die versehentlich für den Benutzerbereich freigegeben wurde. Betrachten Sie stattdessen die folgenden Alternativen, abhängig von Ihren spezifischen Bedürfnissen:

  • Logging-Bibliotheken von Drittanbietern
  • Verwenden Sie console.log(new Date().toLocaleString(), message)

Durch die Verwendung einer dieser Alternativen können Sie von util.log() wegkommen und eine Logging-Strategie wählen, die den spezifischen Anforderungen und der Komplexität Ihrer Anwendung entspricht.

DEP0060: util._extend()

[History]

VersionÄnderungen
v22.0.0Laufzeit-Abkündigung.
v6.12.0Ein Abkündigungscode wurde zugewiesen.
v6.0.0Nur Dokumentations-Abkündigung.

Typ: Laufzeit

Die util._extend() API ist veraltet, da es sich um eine nicht gewartete Legacy-API handelt, die versehentlich für den Benutzerbereich freigegeben wurde. Bitte verwenden Sie stattdessen target = Object.assign(target, source).

DEP0061: fs.SyncWriteStream

[History]

VersionÄnderungen
v11.0.0Ende des Lebenszyklus.
v8.0.0Laufzeit-Abkündigung.
v7.0.0Nur Dokumentations-Abkündigung.

Typ: Ende des Lebenszyklus

Die Klasse fs.SyncWriteStream war nie als öffentlich zugängliche API vorgesehen und wurde entfernt. Es ist keine alternative API verfügbar. Bitte verwenden Sie eine Userland-Alternative.

DEP0062: node --debug

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v8.0.0Laufzeit-Abkündigung.

Typ: Ende des Lebenszyklus

--debug aktiviert die veraltete V8-Debugger-Schnittstelle, die ab V8 5.8 entfernt wurde. Sie wird durch Inspector ersetzt, der stattdessen mit --inspect aktiviert wird.

DEP0063: ServerResponse.prototype.writeHeader()

[History]

VersionÄnderungen
v8.0.0Nur Dokumentations-Abkündigung.

Typ: Nur Dokumentation

Die node:http Modul ServerResponse.prototype.writeHeader() API ist veraltet. Bitte verwenden Sie stattdessen ServerResponse.prototype.writeHead().

Die Methode ServerResponse.prototype.writeHeader() wurde nie als offiziell unterstützte API dokumentiert.

DEP0064: tls.createSecurePair()

[History]

VersionÄnderungen
v8.0.0Laufzeit-Abkündigung.
v6.12.0Ein Abkündigungscode wurde zugewiesen.
v6.0.0Nur Dokumentations-Abkündigung.
v0.11.15Abkündigung widerrufen.
v0.11.3Laufzeit-Abkündigung.

Typ: Laufzeit

Die tls.createSecurePair() API wurde in der Dokumentation in Node.js 0.11.3 als veraltet markiert. Benutzer sollten stattdessen tls.Socket verwenden.

DEP0065: repl.REPL_MODE_MAGIC und NODE_REPL_MODE=magic

[History]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v8.0.0Nur Dokumentations-Abkündigung.

Typ: Ende des Lebenszyklus

Die Konstante REPL_MODE_MAGIC des Moduls node:repl, die für die Option replMode verwendet wird, wurde entfernt. Ihr Verhalten ist seit Node.js 6.0.0, als V8 5.0 importiert wurde, funktional identisch mit dem von REPL_MODE_SLOPPY. Bitte verwenden Sie stattdessen REPL_MODE_SLOPPY.

Die Umgebungsvariable NODE_REPL_MODE wird verwendet, um den zugrunde liegenden replMode einer interaktiven node-Sitzung festzulegen. Ihr Wert, magic, wurde ebenfalls entfernt. Bitte verwenden Sie stattdessen sloppy.

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

[Historie]

VersionÄnderungen
v12.0.0Laufzeit-Deprecation.
v8.0.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

Die Eigenschaften node:http Modul OutgoingMessage.prototype._headers und OutgoingMessage.prototype._headerNames sind veraltet. Verwenden Sie eine der öffentlichen Methoden (z. B. OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader()) zur Bearbeitung ausgehender Header.

Die Eigenschaften OutgoingMessage.prototype._headers und OutgoingMessage.prototype._headerNames wurden nie als offiziell unterstützte Eigenschaften dokumentiert.

DEP0067: OutgoingMessage.prototype._renderHeaders

[Historie]

VersionÄnderungen
v8.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die node:http Modul OutgoingMessage.prototype._renderHeaders() API ist veraltet.

Die Eigenschaft OutgoingMessage.prototype._renderHeaders wurde nie als offiziell unterstützte API dokumentiert.

DEP0068: node debug

[Historie]

VersionÄnderungen
v15.0.0Der Legacy-Befehl node debug wurde entfernt.
v8.0.0Laufzeit-Deprecation.

Typ: End-of-Life

node debug entspricht dem Legacy-CLI-Debugger, der durch einen auf V8-Inspector basierenden CLI-Debugger ersetzt wurde, der über node inspect verfügbar ist.

DEP0069: vm.runInDebugContext(string)

[Historie]

VersionÄnderungen
v10.0.0End-of-Life.
v9.0.0Laufzeit-Deprecation.
v8.0.0Nur Dokumentations-Deprecation.

Typ: End-of-Life

DebugContext wurde in V8 entfernt und ist in Node.js 10+ nicht verfügbar.

DebugContext war eine experimentelle API.

DEP0070: async_hooks.currentId()

[Historie]

VersionÄnderungen
v9.0.0End-of-Life.
v8.2.0Laufzeit-Deprecation.

Typ: End-of-Life

async_hooks.currentId() wurde aus Gründen der Klarheit in async_hooks.executionAsyncId() umbenannt.

Diese Änderung wurde vorgenommen, während async_hooks eine experimentelle API war.

DEP0071: async_hooks.triggerId()

[Historie]

VersionÄnderungen
v9.0.0Ende des Lebenszyklus.
v8.2.0Laufzeit-Abwertung.

Typ: Ende des Lebenszyklus

async_hooks.triggerId() wurde aus Gründen der Klarheit in async_hooks.triggerAsyncId() umbenannt.

Diese Änderung wurde vorgenommen, während async_hooks eine experimentelle API war.

DEP0072: async_hooks.AsyncResource.triggerId()

[Historie]

VersionÄnderungen
v9.0.0Ende des Lebenszyklus.
v8.2.0Laufzeit-Abwertung.

Typ: Ende des Lebenszyklus

async_hooks.AsyncResource.triggerId() wurde aus Gründen der Klarheit in async_hooks.AsyncResource.triggerAsyncId() umbenannt.

Diese Änderung wurde vorgenommen, während async_hooks eine experimentelle API war.

DEP0073: Mehrere interne Eigenschaften von net.Server

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v9.0.0Laufzeit-Abwertung.

Typ: Ende des Lebenszyklus

Der Zugriff auf mehrere interne, nicht dokumentierte Eigenschaften von net.Server-Instanzen mit ungeeigneten Namen ist veraltet.

Da die ursprüngliche API nicht dokumentiert und im Allgemeinen nicht für nicht internen Code nützlich war, wird keine Ersatz-API bereitgestellt.

DEP0074: REPLServer.bufferedCommand

[Historie]

VersionÄnderungen
v15.0.0Ende des Lebenszyklus.
v9.0.0Laufzeit-Abwertung.

Typ: Ende des Lebenszyklus

Die Eigenschaft REPLServer.bufferedCommand wurde zugunsten von REPLServer.clearBufferedCommand() entfernt.

DEP0075: REPLServer.parseREPLKeyword()

[Historie]

VersionÄnderungen
v15.0.0Ende des Lebenszyklus.
v9.0.0Laufzeit-Abwertung.

Typ: Ende des Lebenszyklus

REPLServer.parseREPLKeyword() wurde aus der Sichtbarkeit für Benutzer entfernt.

DEP0076: tls.parseCertString()

[Historie]

VersionÄnderungen
v18.0.0Ende des Lebenszyklus.
v9.0.0Laufzeit-Abwertung.
v8.6.0Nur Dokumentations-Abwertung.

Typ: Ende des Lebenszyklus

tls.parseCertString() war ein trivialer Parsing-Helper, der versehentlich öffentlich gemacht wurde. Obwohl es beabsichtigt war, Zertifikat-Subjekt- und Aussteller-Strings zu parsen, hat es niemals mehrwertige Relative Distinguished Names korrekt verarbeitet.

Frühere Versionen dieses Dokuments schlugen die Verwendung von querystring.parse() als Alternative zu tls.parseCertString() vor. querystring.parse() verarbeitet jedoch auch nicht alle Zertifikat-Subjekte korrekt und sollte nicht verwendet werden.

DEP0077: Module._debug()

[History]

VersionÄnderungen
v9.0.0Laufzeit-Veralterung.

Typ: Laufzeit

Module._debug() ist veraltet.

Die Funktion Module._debug() wurde nie als offiziell unterstützte API dokumentiert.

DEP0078: REPLServer.turnOffEditorMode()

[History]

VersionÄnderungen
v15.0.0Ende des Lebenszyklus.
v9.0.0Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

REPLServer.turnOffEditorMode() wurde aus der Sichtbarkeit des Benutzers entfernt.

DEP0079: Benutzerdefinierte Inspektionsfunktion für Objekte über .inspect()

[History]

VersionÄnderungen
v11.0.0Ende des Lebenszyklus.
v10.0.0Laufzeit-Veralterung.
v8.7.0Nur Dokumentations-Veralterung.

Typ: Ende des Lebenszyklus

Die Verwendung einer Eigenschaft namens inspect für ein Objekt, um eine benutzerdefinierte Inspektionsfunktion für util.inspect() anzugeben, ist veraltet. Verwenden Sie stattdessen util.inspect.custom. Für die Abwärtskompatibilität mit Node.js vor Version 6.4.0 können beide angegeben werden.

DEP0080: path._makeLong()

[History]

VersionÄnderungen
v9.0.0Nur Dokumentations-Veralterung.

Typ: Nur Dokumentation

Die interne Funktion path._makeLong() war nicht für die öffentliche Verwendung vorgesehen. Benutzermodule haben sie jedoch als nützlich empfunden. Die interne API ist veraltet und wird durch eine identische, öffentliche Methode path.toNamespacedPath() ersetzt.

DEP0081: fs.truncate() mit einem File Descriptor

[History]

VersionÄnderungen
v9.0.0Laufzeit-Veralterung.

Typ: Laufzeit

Die Verwendung von fs.truncate() und fs.truncateSync() mit einem File Descriptor ist veraltet. Verwenden Sie bitte fs.ftruncate() oder fs.ftruncateSync(), um mit File Deskriptoren zu arbeiten.

DEP0082: REPLServer.prototype.memory()

[History]

VersionÄnderungen
v15.0.0Ende des Lebenszyklus.
v9.0.0Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

REPLServer.prototype.memory() ist nur für die interne Mechanik des REPLServer selbst notwendig. Verwenden Sie diese Funktion nicht.

DEP0083: Deaktivierung von ECDH durch Setzen von ecdhCurve auf false

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v9.2.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus.

Die Option ecdhCurve für tls.createSecureContext() und tls.TLSSocket konnte auf false gesetzt werden, um ECDH vollständig nur auf dem Server zu deaktivieren. Dieser Modus wurde im Vorfeld der Migration zu OpenSSL 1.1.0 und zur Konsistenz mit dem Client als veraltet markiert und wird jetzt nicht mehr unterstützt. Verwenden Sie stattdessen den Parameter ciphers.

DEP0084: Erforderliche gebündelte interne Abhängigkeiten

[Historie]

VersionÄnderungen
v12.0.0Diese Funktionalität wurde entfernt.
v10.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Seit Node.js Versionen 4.4.0 und 5.2.0 wurden mehrere Module, die nur für die interne Verwendung bestimmt waren, fälschlicherweise über require() für Benutzercode freigegeben. Diese Module waren:

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

Die v8/*-Module haben keine Exporte und würden bei nicht spezifischer Importreihenfolge Fehler auslösen. Daher gibt es praktisch keine legitimen Anwendungsfälle für deren Import über require().

Andererseits kann node-inspect lokal über einen Paketmanager installiert werden, da es unter dem gleichen Namen im npm-Registry veröffentlicht wird. Keine Quellcodeänderung ist notwendig, wenn dies geschieht.

DEP0085: AsyncHooks-sensitive API

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v9.4.0, v8.10.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Die AsyncHooks-sensitive API war nie dokumentiert und hatte verschiedene kleinere Probleme. Verwenden Sie stattdessen die AsyncResource-API. Siehe https://github.com/nodejs/node/issues/15572.

DEP0086: Entfernung von runInAsyncIdScope

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.
v9.4.0, v8.10.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

runInAsyncIdScope sendet kein 'before' oder 'after' Ereignis aus und kann daher viele Probleme verursachen. Siehe https://github.com/nodejs/node/issues/14328.

DEP0089: require('node:assert')

[Historie]

VersionÄnderungen
v12.8.0Deprecation aufgehoben.
v9.9.0, v8.13.0Nur Dokumentations-Deprecation.

Typ: Deprecation aufgehoben

Das direkte Importieren von assert wurde nicht empfohlen, da die exportierten Funktionen lose Gleichheitsprüfungen verwenden. Die Deprecation wurde aufgehoben, da die Verwendung des Moduls node:assert nicht abgeraten wird und die Deprecation zu Verwirrung bei den Entwicklern führte.

DEP0090: Ungültige GCM-Authentifizierungs-Tag-Längen

[Historie]

VersionÄnderungen
v11.0.0Ende des Lebenszyklus.
v10.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Node.js unterstützte früher alle GCM-Authentifizierungs-Tag-Längen, die von OpenSSL akzeptiert werden, wenn decipher.setAuthTag() aufgerufen wird. Ab Node.js v11.0.0 sind nur Authentifizierungs-Tag-Längen von 128, 120, 112, 104, 96, 64 und 32 Bit zulässig. Authentifizierungs-Tags anderer Längen sind ungültig gemäß NIST SP 800-38D.

DEP0091: crypto.DEFAULT_ENCODING

[Historie]

VersionÄnderungen
v20.0.0Ende des Lebenszyklus.
v10.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Die Eigenschaft crypto.DEFAULT_ENCODING existierte nur zur Kompatibilität mit Node.js-Versionen vor Version 0.9.3 und wurde entfernt.

DEP0092: Top-Level this an module.exports gebunden

[Historie]

VersionÄnderungen
v10.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Das Zuweisen von Eigenschaften zum Top-Level this als Alternative zu module.exports ist veraltet. Entwickler sollten stattdessen exports oder module.exports verwenden.

DEP0093: crypto.fips ist veraltet und wurde ersetzt

[Verlauf]

VersionÄnderungen
v23.0.0Laufzeit-Veralterung.
v10.0.0Nur Dokumentations-Veralterung.

Typ: Laufzeit

Die Eigenschaft crypto.fips ist veraltet. Bitte verwenden Sie stattdessen crypto.setFips() und crypto.getFips().

DEP0094: Verwendung von assert.fail() mit mehr als einem Argument

[Verlauf]

VersionÄnderungen
v10.0.0Laufzeit-Veralterung.

Typ: Laufzeit

Die Verwendung von assert.fail() mit mehr als einem Argument ist veraltet. Verwenden Sie assert.fail() mit nur einem Argument oder eine andere Methode des Moduls node:assert.

DEP0095: timers.enroll()

[Verlauf]

VersionÄnderungen
v10.0.0Laufzeit-Veralterung.

Typ: Laufzeit

timers.enroll() ist veraltet. Bitte verwenden Sie stattdessen die öffentlich dokumentierten Funktionen setTimeout() oder setInterval().

DEP0096: timers.unenroll()

[Verlauf]

VersionÄnderungen
v10.0.0Laufzeit-Veralterung.

Typ: Laufzeit

timers.unenroll() ist veraltet. Bitte verwenden Sie stattdessen die öffentlich dokumentierten Funktionen clearTimeout() oder clearInterval().

DEP0097: MakeCallback mit domain-Eigenschaft

[Verlauf]

VersionÄnderungen
v10.0.0Laufzeit-Veralterung.

Typ: Laufzeit

Benutzer von MakeCallback, die die domain-Eigenschaft hinzufügen, um Kontext zu übertragen, sollten stattdessen die async_context-Variante von MakeCallback oder CallbackScope oder die höherwertige Klasse AsyncResource verwenden.

DEP0098: AsyncHooks-Einbetter-APIs AsyncResource.emitBefore und AsyncResource.emitAfter

[Verlauf]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v10.0.0, v9.6.0, v8.12.0Laufzeit-Veralterung.

Typ: Ende des Lebenszyklus

Die von AsyncHooks bereitgestellte eingebettete API bietet .emitBefore() und .emitAfter()-Methoden, die sehr leicht falsch verwendet werden können, was zu nicht behebbaren Fehlern führen kann.

Verwenden Sie stattdessen die API asyncResource.runInAsyncScope(), die eine viel sicherere und bequemere Alternative bietet. Siehe https://github.com/nodejs/node/pull/18513.

DEP0099: Asynchrone kontextunabhängige node::MakeCallback C++-APIs

[Historie]

VersionÄnderungen
v10.0.0Kompilierzeit-Deprecation.

Typ: Kompilierzeit

Bestimmte Versionen der node::MakeCallback APIs, die nativen Addons zur Verfügung stehen, sind veraltet. Bitte verwenden Sie die Versionen der API, die einen async_context-Parameter akzeptieren.

DEP0100: process.assert()

[Historie]

VersionÄnderungen
v23.0.0Ende des Lebenszyklus.
v10.0.0Laufzeit-Deprecation.
v0.3.7Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

process.assert() ist veraltet. Bitte verwenden Sie stattdessen das assert Modul.

Dies war nie ein dokumentiertes Feature.

DEP0101: --with-lttng

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.

Typ: Ende des Lebenszyklus

Die Kompilierzeit-Option --with-lttng wurde entfernt.

DEP0102: Verwendung von noAssert in Buffer#(read|write)-Operationen

[Historie]

VersionÄnderungen
v10.0.0Ende des Lebenszyklus.

Typ: Ende des Lebenszyklus

Das Argument noAssert hat keine Funktionalität mehr. Alle Eingaben werden unabhängig vom Wert von noAssert verifiziert. Das Überspringen der Verifizierung kann zu schwer zu findenden Fehlern und Abstürzen führen.

DEP0103: process.binding('util').is[...] Typprüfungen

[Historie]

VersionÄnderungen
v10.9.0Ersetzt durch DEP0111.
v10.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

Die Verwendung von process.binding() sollte generell vermieden werden. Die Typprüfungsmethoden können insbesondere durch die Verwendung von util.types ersetzt werden.

Diese Deprecation wurde durch die Deprecation der process.binding() API (DEP0111) ersetzt.

DEP0104: process.env String-Konvertierung

[Historie]

VersionÄnderungen
v10.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

Wenn eine Nicht-String-Eigenschaft process.env zugewiesen wird, wird der zugewiesene Wert implizit in einen String konvertiert. Dieses Verhalten ist veraltet, wenn der zugewiesene Wert kein String, Boolean oder Zahl ist. In Zukunft könnte eine solche Zuweisung zu einem geworfenen Fehler führen. Bitte konvertieren Sie die Eigenschaft in einen String, bevor Sie sie process.env zuweisen.

DEP0105: decipher.finaltol

[Historie]

VersionÄnderungen
v11.0.0Ende des Lebenszyklus.
v10.0.0Laufzeit-Abkündigung.

Typ: Ende des Lebenszyklus

decipher.finaltol() wurde nie dokumentiert und war ein Alias für decipher.final(). Diese API wurde entfernt, und es wird empfohlen, stattdessen decipher.final() zu verwenden.

DEP0106: crypto.createCipher und crypto.createDecipher

[Historie]

VersionÄnderungen
v22.0.0Ende des Lebenszyklus.
v11.0.0Laufzeit-Abkündigung.
v10.0.0Nur Dokumentations-Abkündigung.

Typ: Ende des Lebenszyklus

crypto.createCipher() und crypto.createDecipher() wurden entfernt, da sie eine schwache Schlüsselerzeugungsfunktion (MD5 ohne Salt) und statische Initialisierungsvektoren verwenden. Es wird empfohlen, einen Schlüssel mit crypto.pbkdf2() oder crypto.scrypt() mit zufälligen Salts zu erzeugen und crypto.createCipheriv() und crypto.createDecipheriv() zu verwenden, um die Objekte Cipher bzw. Decipher zu erhalten.

DEP0107: tls.convertNPNProtocols()

[Historie]

VersionÄnderungen
v11.0.0Ende des Lebenszyklus.
v10.0.0Laufzeit-Abkündigung.

Typ: Ende des Lebenszyklus

Dies war eine nicht dokumentierte Hilfsfunktion, die nicht für die Verwendung außerhalb des Node.js-Kernels gedacht war und durch die Entfernung der NPN-Unterstützung (Next Protocol Negotiation) obsolet geworden ist.

DEP0108: zlib.bytesRead

[Historie]

VersionÄnderungen
v23.0.0Ende des Lebenszyklus.
v11.0.0Laufzeit-Abkündigung.
v10.0.0Nur Dokumentations-Abkündigung.

Typ: Ende des Lebenszyklus

Veralteter Alias für zlib.bytesWritten. Dieser ursprüngliche Name wurde gewählt, weil es auch sinnvoll war, den Wert als die Anzahl der vom Engine gelesenen Bytes zu interpretieren, er ist jedoch nicht konsistent mit anderen Streams in Node.js, die Werte unter diesen Namen verfügbar machen.

DEP0109: Unterstützung für ungültige URLs in http, https und tls

[Historie]

VersionÄnderungen
v16.0.0Ende des Lebenszyklus.
v11.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Einige zuvor unterstützte (aber streng genommen ungültige) URLs wurden über die APIs http.request(), http.get(), https.request(), https.get() und tls.checkServerIdentity() akzeptiert, da diese von der Legacy-API url.parse() akzeptiert wurden. Die genannten APIs verwenden jetzt den WHATWG-URL-Parser, der streng gültige URLs erfordert. Die Übergabe einer ungültigen URL ist veraltet und die Unterstützung wird in Zukunft entfernt.

DEP0110: Zwischengespeicherte Daten von vm.Script

[Historie]

VersionÄnderungen
v10.6.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die Option produceCachedData ist veraltet. Verwenden Sie stattdessen script.createCachedData().

DEP0111: process.binding()

[Historie]

VersionÄnderungen
v11.12.0Unterstützung für --pending-deprecation hinzugefügt.
v10.9.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

process.binding() ist nur für den internen Gebrauch durch Node.js-Code bestimmt.

Obwohl process.binding() im Allgemeinen noch nicht das Ende seines Lebenszyklus erreicht hat, ist es nicht verfügbar, wenn das Berechtigungsmodell aktiviert ist.

DEP0112: Private APIs von dgram

[Historie]

VersionÄnderungen
v11.0.0Laufzeit-Deprecation.

Typ: Laufzeit

Das Modul node:dgram enthielt zuvor mehrere APIs, die niemals für den Zugriff außerhalb des Node.js-Kernels gedacht waren: Socket.prototype._handle, Socket.prototype._receiving, Socket.prototype._bindState, Socket.prototype._queue, Socket.prototype._reuseAddr, Socket.prototype._healthCheck(), Socket.prototype._stopReceiving() und dgram._createSocketHandle().

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

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v11.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Cipher.setAuthTag() und Decipher.getAuthTag() sind nicht mehr verfügbar. Sie waren nie dokumentiert und würden bei Aufruf einen Fehler auslösen.

DEP0114: crypto._toBuf()

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v11.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Die Funktion crypto._toBuf() war nicht für die Verwendung durch Module außerhalb des Node.js-Kernels vorgesehen und wurde entfernt.

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

[History]

VersionÄnderungen
v11.0.0Nur Dokumentations-Deprecation mit --pending-deprecation-Unterstützung hinzugefügt.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

In neueren Versionen von Node.js gibt es keinen Unterschied zwischen crypto.randomBytes() und crypto.pseudoRandomBytes(). Letzteres wird zusammen mit den undokumentierten Aliasnamen crypto.prng() und crypto.rng() zugunsten von crypto.randomBytes() als veraltet markiert und könnte in einer zukünftigen Version entfernt werden.

DEP0116: Legacy URL API

[History]

VersionÄnderungen
v19.0.0, v18.13.0url.parse() ist in DEP0169 erneut als veraltet markiert.
v15.13.0, v14.17.0Deprecation aufgehoben. Status geändert in "Legacy".
v11.0.0Nur Dokumentations-Deprecation.

Typ: Deprecation aufgehoben

Die Legacy URL API ist veraltet. Dies umfasst url.format(), url.parse(), url.resolve() und das Legacy urlObject. Bitte verwenden Sie stattdessen die WHATWG URL API.

DEP0117: Native Crypto-Handles

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v11.0.0Laufzeit-Abkündigung.

Typ: Ende des Lebenszyklus

Frühere Versionen von Node.js stellten Handles zu internen nativen Objekten über die Eigenschaft _handle der Klassen Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign und Verify zur Verfügung. Die Eigenschaft _handle wurde entfernt, da die unsachgemäße Verwendung des nativen Objekts zum Absturz der Anwendung führen kann.

DEP0118: dns.lookup()-Unterstützung für einen falsy Hostnamen

[History]

VersionÄnderungen
v11.0.0Laufzeit-Abkündigung.

Typ: Laufzeit

Frühere Versionen von Node.js unterstützten dns.lookup() mit einem falsy Hostnamen wie dns.lookup(false) aufgrund der Abwärtskompatibilität. Dieses Verhalten ist nicht dokumentiert und wird vermutlich in realen Anwendungen nicht verwendet. Es wird in zukünftigen Versionen von Node.js zu einem Fehler werden.

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

[History]

VersionÄnderungen
v11.0.0Nur Dokumentations-Abkündigung.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

process.binding('uv').errname() ist veraltet. Verwenden Sie stattdessen util.getSystemErrorName().

DEP0120: Unterstützung für Windows-Leistungsindikatoren

[History]

VersionÄnderungen
v12.0.0Ende des Lebenszyklus.
v11.0.0Laufzeit-Abkündigung.

Typ: Ende des Lebenszyklus

Die Unterstützung für Windows-Leistungsindikatoren wurde aus Node.js entfernt. Die nicht dokumentierten Funktionen COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST() und COUNTER_HTTP_CLIENT_RESPONSE() wurden abgekündigt.

DEP0121: net._setSimultaneousAccepts()

[History]

VersionÄnderungen
v12.0.0Laufzeit-Abkündigung.

Typ: Laufzeit

Die nicht dokumentierte Funktion net._setSimultaneousAccepts() war ursprünglich für das Debugging und die Leistungsoptimierung bei Verwendung der Module node:child_process und node:cluster unter Windows vorgesehen. Die Funktion ist im Allgemeinen nicht nützlich und wird entfernt. Siehe Diskussion hier: https://github.com/nodejs/node/issues/18391

DEP0122: tls Server.prototype.setOptions()

[History]

VersionÄnderungen
v12.0.0Laufzeit-Abwertung.

Typ: Laufzeit

Bitte verwenden Sie stattdessen Server.prototype.setSecureContext().

DEP0123: Festlegen des TLS ServerName auf eine IP-Adresse

[History]

VersionÄnderungen
v12.0.0Laufzeit-Abwertung.

Typ: Laufzeit

Das Festlegen des TLS ServerName auf eine IP-Adresse ist gemäß RFC 6066 nicht zulässig. Dies wird in einer zukünftigen Version ignoriert.

DEP0124: Verwendung von REPLServer.rli

[History]

VersionÄnderungen
v15.0.0Ende der Lebensdauer.
v12.0.0Laufzeit-Abwertung.

Typ: Ende der Lebensdauer

Diese Eigenschaft ist ein Verweis auf die Instanz selbst.

DEP0125: require('node:_stream_wrap')

[History]

VersionÄnderungen
v12.0.0Laufzeit-Abwertung.

Typ: Laufzeit

Das Modul node:_stream_wrap ist veraltet.

DEP0126: timers.active()

[History]

VersionÄnderungen
v11.14.0Laufzeit-Abwertung.

Typ: Laufzeit

Die bisher nicht dokumentierte Funktion timers.active() ist veraltet. Bitte verwenden Sie stattdessen die öffentlich dokumentierte Funktion timeout.refresh(). Wenn ein erneuter Verweis auf den Timeout erforderlich ist, kann timeout.ref() ohne Performance-Einbußen seit Node.js 10 verwendet werden.

DEP0127: timers._unrefActive()

[History]

VersionÄnderungen
v11.14.0Laufzeit-Abwertung.

Typ: Laufzeit

Die bisher nicht dokumentierte und "private" Funktion timers._unrefActive() ist veraltet. Bitte verwenden Sie stattdessen die öffentlich dokumentierte Funktion timeout.refresh(). Wenn ein Aufheben des Verweises auf den Timeout erforderlich ist, kann timeout.unref() ohne Performance-Einbußen seit Node.js 10 verwendet werden.

DEP0128: Module mit ungültigem main-Eintrag und einer index.js-Datei

[History]

VersionÄnderungen
v16.0.0Laufzeit-Abwertung.
v12.0.0Nur Dokumentation.

Typ: Laufzeit

Module, die einen ungültigen main-Eintrag haben (z. B. ./does-not-exist.js) und auch eine index.js-Datei im obersten Verzeichnis enthalten, lösen die index.js-Datei auf. Das ist veraltet und wird in zukünftigen Node.js-Versionen einen Fehler auslösen.

DEP0129: ChildProcess._channel

[Historie]

VersionÄnderungen
v13.0.0Laufzeit-Veralterung.
v11.14.0Nur Dokumentation.

Typ: Laufzeit

Die Eigenschaft _channel von Child-Prozess-Objekten, die von spawn() und ähnlichen Funktionen zurückgegeben werden, ist nicht für die öffentliche Verwendung vorgesehen. Verwenden Sie stattdessen ChildProcess.channel.

DEP0130: Module.createRequireFromPath()

[Historie]

VersionÄnderungen
v16.0.0Ende des Lebenszyklus.
v13.0.0Laufzeit-Veralterung.
v12.2.0Nur Dokumentation.

Typ: Ende des Lebenszyklus

Verwenden Sie stattdessen module.createRequire().

DEP0131: Legacy HTTP-Parser

[Historie]

VersionÄnderungen
v13.0.0Diese Funktion wurde entfernt.
v12.22.0Laufzeit-Veralterung.
v12.3.0Nur Dokumentation.

Typ: Ende des Lebenszyklus

Der Legacy-HTTP-Parser, der standardmäßig in Node.js-Versionen vor 12.0.0 verwendet wurde, ist veraltet und wurde in v13.0.0 entfernt. Vor v13.0.0 konnte das Befehlszeilenflag --http-parser=legacy verwendet werden, um zur Verwendung des Legacy-Parsers zurückzukehren.

DEP0132: worker.terminate() mit Callback

[Historie]

VersionÄnderungen
v12.5.0Laufzeit-Veralterung.

Typ: Laufzeit

Das Übergeben eines Callbacks an worker.terminate() ist veraltet. Verwenden Sie stattdessen das zurückgegebene Promise oder einen Listener für das Ereignis 'exit' des Workers.

DEP0133: http connection

[Historie]

VersionÄnderungen
v12.12.0Nur Dokumentations-Veralterung.

Typ: Nur Dokumentation

Bevorzugen Sie response.socket gegenüber response.connection und request.socket gegenüber request.connection.

DEP0134: process._tickCallback

[Historie]

VersionÄnderungen
v12.12.0Nur Dokumentations-Veralterung.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

Die Eigenschaft process._tickCallback wurde nie als offiziell unterstützte API dokumentiert.

DEP0135: WriteStream.open() und ReadStream.open() sind intern

[Historie]

VersionÄnderungen
v13.0.0Laufzeit-Deprecation.

Typ: Laufzeit

WriteStream.open() und ReadStream.open() sind undokumentierte interne APIs, deren Verwendung im Userland keinen Sinn ergibt. Dateistreams sollten immer über ihre entsprechenden Factory-Methoden fs.createWriteStream() und fs.createReadStream() oder durch Übergabe eines File-Descriptors in den Optionen geöffnet werden.

DEP0136: http finished

[Historie]

VersionÄnderungen
v13.4.0, v12.16.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

response.finished gibt an, ob response.end() aufgerufen wurde, nicht ob 'finish' emittiert wurde und die zugrundeliegenden Daten gespült wurden.

Verwenden Sie stattdessen response.writableFinished oder response.writableEnded, um die Mehrdeutigkeit zu vermeiden.

Um das bestehende Verhalten beizubehalten, sollte response.finished durch response.writableEnded ersetzt werden.

DEP0137: Schließen von fs.FileHandle bei Garbage Collection

[Historie]

VersionÄnderungen
v14.0.0Laufzeit-Deprecation.

Typ: Laufzeit

Das Schließen eines fs.FileHandle-Objekts bei der Garbage Collection ist veraltet. In Zukunft kann dies zu einem geworfenen Fehler führen, der den Prozess beendet.

Stellen Sie bitte sicher, dass alle fs.FileHandle-Objekte explizit mit FileHandle.prototype.close() geschlossen werden, wenn der fs.FileHandle nicht mehr benötigt wird:

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

[History]

VersionÄnderungen
v14.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

process.mainModule ist ein CommonJS-spezifisches Feature, während das globale process-Objekt von nicht-CommonJS-Umgebungen geteilt wird. Seine Verwendung innerhalb von ECMAScript-Modulen wird nicht unterstützt.

Es ist zugunsten von require.main veraltet, da es den gleichen Zweck erfüllt und nur in CommonJS-Umgebungen verfügbar ist.

DEP0139: process.umask() ohne Argumente

[History]

VersionÄnderungen
v14.0.0, v12.19.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Ein Aufruf von process.umask() ohne Argumente führt dazu, dass die prozessweite Umask zweimal geschrieben wird. Dies führt zu einem Race Condition zwischen Threads und ist eine potenzielle Sicherheitslücke. Es gibt keine sichere, plattformübergreifende alternative API.

DEP0140: Verwenden Sie request.destroy() anstelle von request.abort()

[History]

VersionÄnderungen
v14.1.0, v13.14.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Verwenden Sie request.destroy() anstelle von request.abort().

DEP0141: repl.inputStream und repl.outputStream

[History]

VersionÄnderungen
v14.3.0Nur Dokumentation (unterstützt [--pending-deprecation][]).

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

Das Modul node:repl exportierte den Eingabe- und Ausgabestream zweimal. Verwenden Sie .input anstelle von .inputStream und .output anstelle von .outputStream.

DEP0142: repl._builtinLibs

[History]

VersionÄnderungen
v14.3.0Nur Dokumentation (unterstützt [--pending-deprecation][]).

Typ: Nur Dokumentation

Das Modul node:repl exportiert eine Eigenschaft _builtinLibs, die ein Array von eingebauten Modulen enthält. Diese war bisher unvollständig, stattdessen ist es besser, sich auf require('node:module').builtinModules zu verlassen.

DEP0143: Transform._transformState

[Historie]

VersionÄnderungen
v14.5.0Laufzeit-Abwertung.

Typ: Laufzeit Transform._transformState wird in zukünftigen Versionen entfernt, in denen es aufgrund der Vereinfachung der Implementierung nicht mehr benötigt wird.

DEP0144: module.parent

[Historie]

VersionÄnderungen
v14.6.0, v12.19.0Nur Dokumentations-Abwertung.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

Ein CommonJS-Modul kann auf das erste Modul zugreifen, das es benötigt hat, indem es module.parent verwendet. Diese Funktion ist veraltet, da sie in Gegenwart von ECMAScript-Modulen nicht konsistent funktioniert und eine ungenaue Darstellung des CommonJS-Modulgraphen liefert.

Einige Module verwenden dies, um zu überprüfen, ob sie der Einstiegspunkt des aktuellen Prozesses sind. Stattdessen wird empfohlen, require.main und module zu vergleichen:

js
if (require.main === module) {
  // Codeabschnitt, der nur ausgeführt wird, wenn die aktuelle Datei der Einstiegspunkt ist.
}

Wenn Sie nach den CommonJS-Modulen suchen, die das aktuelle Modul benötigt haben, können Sie require.cache und module.children verwenden:

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

DEP0145: socket.bufferSize

[Historie]

VersionÄnderungen
v14.6.0Nur Dokumentations-Abwertung.

Typ: Nur Dokumentation

socket.bufferSize ist nur ein Alias für writable.writableLength.

DEP0146: new crypto.Certificate()

[Historie]

VersionÄnderungen
v14.9.0Nur Dokumentations-Abwertung.

Typ: Nur Dokumentation

Der Konstruktor crypto.Certificate() ist veraltet. Verwenden Sie stattdessen statische Methoden von crypto.Certificate().

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

[Historie]

VersionÄnderungen
v16.0.0Laufzeit-Abwertung.
v15.0.0Laufzeit-Abwertung für permissives Verhalten.
v14.14.0Nur Dokumentations-Abwertung.

Typ: Laufzeit

In zukünftigen Versionen von Node.js wird die Option recursive für fs.rmdir, fs.rmdirSync und fs.promises.rmdir ignoriert.

Verwenden Sie stattdessen fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) oder fs.promises.rm(path, { recursive: true, force: true }).

DEP0148: Ordnerzuordnungen in "exports" (abschließendes "/")

[Verlauf]

VersionÄnderungen
v17.0.0Ende des Lebenszyklus.
v16.0.0Laufzeit-Deprecation.
v15.1.0Laufzeit-Deprecation für selbstreferenzierende Importe.
v14.13.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

Die Verwendung eines abschließenden "/" zum Definieren von Unterpfad-Ordnerzuordnungen in den Feldern Unterpfad-Exporte oder Unterpfad-Importe ist veraltet. Verwenden Sie stattdessen Unterpfad-Muster.

DEP0149: http.IncomingMessage#connection

[Verlauf]

VersionÄnderungen
v16.0.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation.

Bevorzugen Sie message.socket gegenüber message.connection.

DEP0150: Ändern des Werts von process.config

[Verlauf]

VersionÄnderungen
v19.0.0Ende des Lebenszyklus.
v16.0.0Laufzeit-Deprecation.

Typ: Ende des Lebenszyklus

Die Eigenschaft process.config bietet Zugriff auf die Node.js-Kompilierzeit-Einstellungen. Die Eigenschaft ist jedoch veränderbar und daher anfällig für Manipulationen. Die Möglichkeit, den Wert zu ändern, wird in einer zukünftigen Version von Node.js entfernt.

DEP0151: Suche nach Hauptindex und Dateierweiterung

[Verlauf]

VersionÄnderungen
v16.0.0Laufzeit-Deprecation.
v15.8.0, v14.18.0Nur Dokumentations-Deprecation mit --pending-deprecation-Unterstützung.

Typ: Laufzeit

Bisher wurden die Suchen nach index.js und Dateierweiterungen auf die Auflösung des Haupteinstiegspunkts von import 'pkg' angewendet, selbst bei der Auflösung von ES-Modulen.

Mit dieser Deprecation erfordern alle Auflösungen des Haupteinstiegspunkts von ES-Modulen einen expliziten "exports"- oder "main"-Eintrag mit der genauen Dateierweiterung.

DEP0152: Erweiterung von PerformanceEntry-Eigenschaften

[Verlauf]

VersionÄnderungen
v16.0.0Laufzeit-Deprecation.

Typ: Laufzeit

Die Objekttypen 'gc', 'http2' und 'http' von <PerformanceEntry> haben zusätzliche Eigenschaften zugewiesen, die zusätzliche Informationen liefern. Diese Eigenschaften sind jetzt in der standardmäßigen detail-Eigenschaft des PerformanceEntry-Objekts verfügbar. Die bestehenden Accessoren wurden als veraltet markiert und sollten nicht mehr verwendet werden.

DEP0153: Typumwandlung von Optionen in dns.lookup und dnsPromises.lookup

[Verlauf]

VersionÄnderungen
v18.0.0Ende des Lebenszyklus.
v17.0.0Laufzeit-Veralterung.
v16.8.0Nur Dokumentations-Veralterung.

Typ: Ende des Lebenszyklus

Die Verwendung eines nicht-nullishen Nicht-Ganzzahlwerts für die Option family, eines nicht-nullishen Nicht-Zahlenwerts für die Option hints, eines nicht-nullishen Nicht-Booleschen Werts für die Option all oder eines nicht-nullishen Nicht-Booleschen Werts für die Option verbatim in dns.lookup() und dnsPromises.lookup() löst einen ERR_INVALID_ARG_TYPE-Fehler aus.

DEP0154: Optionen für die RSA-PSS-Schlüsselpaargenerierung

[Verlauf]

VersionÄnderungen
v20.0.0Laufzeit-Veralterung.
v16.10.0Nur Dokumentations-Veralterung.

Typ: Laufzeit

Die Optionen 'hash' und 'mgf1Hash' werden durch 'hashAlgorithm' und 'mgf1HashAlgorithm' ersetzt.

DEP0155: Nachgestellte Schrägstriche in Muster-Spezifikator-Auflösungen

[Verlauf]

VersionÄnderungen
v17.0.0Laufzeit-Veralterung.
v16.10.0Nur Dokumentations-Veralterung mit Unterstützung für --pending-deprecation.

Typ: Laufzeit

Das Remapping von Spezifikatoren, die mit "/" enden, wie z. B. import 'pkg/x/', ist für die Auflösung von Paket-"exports"- und "imports"-Mustern veraltet.

DEP0156: .aborted-Eigenschaft und 'abort', 'aborted'-Ereignis in http

[Verlauf]

VersionÄnderungen
v17.0.0, v16.12.0Nur Dokumentations-Veralterung.

Typ: Nur Dokumentation

Wechseln Sie stattdessen zur <Stream>-API, da http.ClientRequest, http.ServerResponse und http.IncomingMessage alle streambasiert sind. Überprüfen Sie stream.destroyed anstelle der .aborted-Eigenschaft und lauschen Sie auf 'close' anstelle des 'abort', 'aborted'-Ereignisses.

Die .aborted-Eigenschaft und das 'abort'-Ereignis sind nur nützlich, um .abort()-Aufrufe zu erkennen. Um eine Anfrage frühzeitig zu schließen, verwenden Sie den Stream .destroy([error]); die Überprüfung der .destroyed-Eigenschaft und das 'close'-Ereignis sollten den gleichen Effekt haben. Das empfangende Ende sollte auch den Wert readable.readableEnded auf http.IncomingMessage überprüfen, um festzustellen, ob es sich um eine abgebrochene oder eine ordnungsgemäße Zerstörung handelte.

DEP0157: Thenable-Unterstützung in Streams

[Historie]

VersionÄnderungen
v18.0.0Ende des Lebenszyklus.
v17.2.0, v16.14.0Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Eine nicht dokumentierte Funktion von Node.js-Streams war die Unterstützung von Thenables in Implementierungsmethoden. Dies ist jetzt veraltet. Verwenden Sie stattdessen Callbacks und vermeiden Sie die Verwendung asynchroner Funktionen für Stream-Implementierungsmethoden.

Diese Funktion führte dazu, dass Benutzer auf unerwartete Probleme stießen, bei denen der Benutzer die Funktion im Callback-Stil implementiert, aber z. B. eine asynchrone Methode verwendet, die einen Fehler verursachen würde, da das Mischen von Promise- und Callback-Semantik nicht gültig ist.

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

DEP0158: buffer.slice(start, end)

[Historie]

VersionÄnderungen
v17.5.0, v16.15.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Diese Methode wurde als veraltet markiert, da sie nicht mit Uint8Array.prototype.slice() kompatibel ist, einer Oberklasse von Buffer.

Verwenden Sie stattdessen buffer.subarray, das dasselbe tut.

DEP0159: ERR_INVALID_CALLBACK

[Historie]

VersionÄnderungen
v18.0.0Ende des Lebenszyklus.

Typ: Ende des Lebenszyklus

Dieser Fehlercode wurde entfernt, da er zu mehr Verwirrung bei den für die Werttypvalidierung verwendeten Fehlern führte.

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

[Historie]

VersionÄnderungen
v18.0.0Runtime-Deprecation.
v17.6.0, v16.15.0Nur Dokumentations-Deprecation.

Typ: Runtime.

Dieses Ereignis wurde als veraltet markiert, da es nicht mit V8-Promise-Kombinatoren funktionierte, wodurch seine Nützlichkeit verringert wurde.

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

[Historie]

VersionÄnderungen
v17.6.0, v16.15.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die Funktionen process._getActiveHandles() und process._getActiveRequests() sind nicht für die öffentliche Verwendung vorgesehen und können in zukünftigen Versionen entfernt werden.

Verwenden Sie process.getActiveResourcesInfo(), um eine Liste der Typen aktiver Ressourcen und nicht die tatsächlichen Referenzen zu erhalten.

DEP0162: Zwangsumwandlung von fs.write(), fs.writeFileSync() zu String

[Verlauf]

VersionÄnderungen
v19.0.0Ende des Lebenszyklus.
v18.0.0Laufzeit-Abwertung.
v17.8.0, v16.15.0Nur Dokumentations-Abwertung.

Typ: Ende des Lebenszyklus

Die implizite Umwandlung von Objekten mit eigener toString-Eigenschaft, die als zweiter Parameter in fs.write(), fs.writeFile(), fs.appendFile(), fs.writeFileSync() und fs.appendFileSync() übergeben werden, ist veraltet. Wandeln Sie sie in primitive Strings um.

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

[Verlauf]

VersionÄnderungen
v18.7.0, v16.17.0Nur Dokumentations-Abwertung.

Typ: Nur Dokumentation

Diese Methoden wurden als veraltet markiert, da sie auf eine Weise verwendet werden können, die die Kanalreferenz nicht lange genug am Leben erhält, um die Ereignisse zu empfangen.

Verwenden Sie stattdessen diagnostics_channel.subscribe(name, onMessage) oder diagnostics_channel.unsubscribe(name, onMessage), die dasselbe tun.

DEP0164: Zwangsumwandlung von process.exit(code), process.exitCode zu Integer

[Verlauf]

VersionÄnderungen
v20.0.0Ende des Lebenszyklus.
v19.0.0Laufzeit-Abwertung.
v18.10.0, v16.18.0Nur Dokumentations-Abwertung der Integer-Zwangsumwandlung von process.exitCode.
v18.7.0, v16.17.0Nur Dokumentations-Abwertung der Integer-Zwangsumwandlung von process.exit(code).

Typ: Ende des Lebenszyklus

Werte außer undefined, null, Integerzahlen und Integer-Strings (z. B. '1') sind als Wert für den Parameter code in process.exit() und als Wert für die Zuweisung an process.exitCode veraltet.

DEP0165: --trace-atomics-wait

[Historie]

VersionÄnderungen
v23.0.0Ende des Lebenszyklus.
v22.0.0Laufzeit-Abkündigung.
v18.8.0, v16.18.0Nur Dokumentations-Abkündigung.

Typ: Ende des Lebenszyklus

Das Flag --trace-atomics-wait wurde entfernt, da es den V8-Hook SetAtomicsWaitCallback verwendet, der in einer zukünftigen V8-Version entfernt wird.

DEP0166: Doppelte Schrägstriche in Import- und Exportzielen

[Historie]

VersionÄnderungen
v19.0.0Laufzeit-Abkündigung.
v18.10.0Nur Dokumentations-Abkündigung mit Unterstützung von --pending-deprecation.

Typ: Laufzeit

Paket-Import- und Exportziele, die auf Pfade mit einem doppelten Schrägstrich (// oder */*`) verweisen, sind veraltet und führen in einer zukünftigen Version zu einem Fehler bei der Auflösungsvalidierung. Dieselbe Abkündigung gilt auch für Musterabgleiche, die mit einem Schrägstrich beginnen oder enden.

DEP0167: Schwache DiffieHellmanGroup-Instanzen (modp1, modp2, modp5)

[Historie]

VersionÄnderungen
v18.10.0, v16.18.0Nur Dokumentations-Abkündigung.

Typ: Nur Dokumentation

Die bekannten MODP-Gruppen modp1, modp2 und modp5 sind veraltet, da sie nicht sicher gegen praktische Angriffe sind. Details finden Sie unter RFC 8247 Abschnitt 2.4.

Diese Gruppen werden möglicherweise in zukünftigen Versionen von Node.js entfernt. Anwendungen, die auf diese Gruppen angewiesen sind, sollten die Verwendung stärkerer MODP-Gruppen prüfen.

DEP0168: Nicht behandelte Ausnahme in Node-API-Callbacks

[Historie]

VersionÄnderungen
v18.3.0, v16.17.0Laufzeit-Abkündigung.

Typ: Laufzeit

Das implizite Unterdrücken nicht behandelter Ausnahmen in Node-API-Callbacks ist jetzt veraltet.

Setzen Sie das Flag --force-node-api-uncaught-exceptions-policy, um Node.js zu zwingen, ein 'uncaughtException'-Ereignis auszulösen, wenn die Ausnahme nicht in Node-API-Callbacks behandelt wird.

DEP0169: Unsichere url.parse()

[Historie]

VersionÄnderungen
v19.9.0, v18.17.0Unterstützung für --pending-deprecation hinzugefügt.
v19.0.0, v18.13.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation (unterstützt --pending-deprecation)

Das Verhalten von url.parse() ist nicht standardisiert und anfällig für Fehler mit Sicherheitsrisiken. Verwenden Sie stattdessen die WHATWG URL API. Für Sicherheitslücken in url.parse() werden keine CVEs vergeben.

DEP0170: Ungültiger Port bei Verwendung von url.parse()

[Historie]

VersionÄnderungen
v20.0.0Runtime-Deprecation.
v19.2.0, v18.13.0Nur Dokumentations-Deprecation.

Typ: Runtime

url.parse() akzeptiert URLs mit Ports, die keine Zahlen sind. Dieses Verhalten kann zu Hostname-Spoofing mit unerwarteter Eingabe führen. Diese URLs lösen in zukünftigen Versionen von Node.js einen Fehler aus, da dies bei der WHATWG URL API bereits der Fall ist.

DEP0171: Setter für http.IncomingMessage-Header und -Trailer

[Historie]

VersionÄnderungen
v19.3.0, v18.13.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

In einer zukünftigen Version von Node.js werden message.headers, message.headersDistinct, message.trailers, und message.trailersDistinct schreibgeschützt sein.

DEP0172: Die asyncResource-Eigenschaft von AsyncResource-gebundenen Funktionen

[Historie]

VersionÄnderungen
v20.0.0Runtime-Deprecation.

Typ: Runtime

In einer zukünftigen Version von Node.js wird die Eigenschaft asyncResource nicht mehr hinzugefügt, wenn eine Funktion an eine AsyncResource gebunden wird.

DEP0173: Die Klasse assert.CallTracker

[Historie]

VersionÄnderungen
v20.1.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

In einer zukünftigen Version von Node.js wird assert.CallTracker entfernt. Erwägen Sie die Verwendung von Alternativen wie der Hilfsfunktion mock.

DEP0174: Aufruf von promisify für eine Funktion, die ein Promise zurückgibt

[Verlauf]

VersionÄnderungen
v21.0.0Laufzeit-Deprecation.
v20.8.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

Der Aufruf von util.promisify für eine Funktion, die ein

DEP0175: util.toUSVString

[Verlauf]

VersionÄnderungen
v20.8.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die API util.toUSVString() ist veraltet. Bitte verwenden Sie stattdessen String.prototype.toWellFormed.

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

[Verlauf]

VersionÄnderungen
v20.8.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

Die direkt auf node:fs verfügbar gemachten Getter F_OK, R_OK, W_OK und X_OK sind veraltet. Verwenden Sie stattdessen fs.constants oder fs.promises.constants.

DEP0177: util.types.isWebAssemblyCompiledModule

[Verlauf]

VersionÄnderungen
v21.7.0, v20.12.0Ende des Lebenszyklus.
v21.3.0, v20.11.0Ein Deprecation-Code wurde zugewiesen.
v14.0.0Nur Dokumentations-Deprecation.

Typ: Ende des Lebenszyklus

Die API util.types.isWebAssemblyCompiledModule wurde entfernt. Bitte verwenden Sie stattdessen value instanceof WebAssembly.Module.

DEP0178: dirent.path

[Verlauf]

VersionÄnderungen
v23.0.0Laufzeit-Deprecation.
v21.5.0, v20.12.0, v18.20.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

dirent.path dirent.path ist aufgrund mangelnder Konsistenz über verschiedene Release-Linien veraltet. Bitte verwenden Sie stattdessen dirent.parentPath.

DEP0179: Hash-Konstruktor

[Verlauf]

VersionÄnderungen
v22.0.0Laufzeit-Deprecation.
v21.5.0, v20.12.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

Der direkte Aufruf der Hash-Klasse mit Hash() oder new Hash() ist veraltet, da es sich um interne Funktionen handelt, die nicht für die öffentliche Verwendung bestimmt sind. Verwenden Sie zum Erstellen von Hash-Instanzen bitte die Methode crypto.createHash().

DEP0180: fs.Stats-Konstruktor

[Historie]

VersionÄnderungen
v22.0.0Laufzeit-Deprecation.
v20.13.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

Das direkte Aufrufen der fs.Stats-Klasse mit Stats() oder new Stats() ist aufgrund der internen Verwendung und Nicht-Beabsichtigung für die öffentliche Nutzung veraltet.

DEP0181: Hmac-Konstruktor

[Historie]

VersionÄnderungen
v22.0.0Laufzeit-Deprecation.
v20.13.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

Das direkte Aufrufen der Hmac-Klasse mit Hmac() oder new Hmac() ist aufgrund der internen Verwendung und Nicht-Beabsichtigung für die öffentliche Nutzung veraltet. Bitte verwenden Sie die Methode crypto.createHmac(), um Hmac-Instanzen zu erstellen.

DEP0182: Kurze GCM-Authentifizierungs-Tags ohne explizites authTagLength

[Historie]

VersionÄnderungen
v23.0.0Laufzeit-Deprecation.
v20.13.0Nur Dokumentations-Deprecation.

Typ: Laufzeit

Anwendungen, die Authentifizierungs-Tags verwenden möchten, die kürzer als die Standard-Authentifizierungs-Tag-Länge sind, müssen die Option authTagLength der Funktion crypto.createDecipheriv() auf die entsprechende Länge setzen.

Für Chiffren im GCM-Modus akzeptiert die Funktion decipher.setAuthTag() Authentifizierungs-Tags beliebiger gültiger Länge (siehe DEP0090). Dieses Verhalten ist veraltet, um besser mit den Empfehlungen gemäß NIST SP 800-38D übereinzustimmen.

DEP0183: OpenSSL Engine-basierte APIs

[Historie]

VersionÄnderungen
v22.4.0, v20.16.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentation

OpenSSL 3 hat die Unterstützung für benutzerdefinierte Engines mit der Empfehlung, auf das neue Provider-Modell umzusteigen, eingestellt. Die Option clientCertEngine für https.request(), tls.createSecureContext() und tls.createServer(); privateKeyEngine und privateKeyIdentifier für tls.createSecureContext(); und crypto.setEngine() hängen alle von dieser Funktionalität von OpenSSL ab.

DEP0184: Instanziierung von node:zlib-Klassen ohne new

[Verlauf]

VersionÄnderungen
v22.9.0, v20.18.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentations-Deprecation

Das Instanziieren von Klassen ohne den new-Qualifizierer, der vom Modul node:zlib exportiert wird, ist veraltet. Es wird empfohlen, stattdessen den new-Qualifizierer zu verwenden. Dies gilt für alle Zlib-Klassen, wie z. B. Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip und Zlib.

DEP0185: Instanziierung von node:repl-Klassen ohne new

[Verlauf]

VersionÄnderungen
v22.9.0, v20.18.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentations-Deprecation

Das Instanziieren von Klassen ohne den new-Qualifizierer, der vom Modul node:repl exportiert wird, ist veraltet. Es wird empfohlen, stattdessen den new-Qualifizierer zu verwenden. Dies gilt für alle REPL-Klassen, einschließlich REPLServer und Recoverable.

DEP0187: Übergabe ungültiger Argumenttypen an fs.existsSync

[Verlauf]

VersionÄnderungen
v23.4.0Nur Dokumentation.

Typ: Nur Dokumentations-Deprecation

Die Übergabe nicht unterstützter Argumenttypen ist veraltet und löst in einer zukünftigen Version anstelle der Rückgabe von false einen Fehler aus.

DEP0188: process.features.ipv6 und process.features.uv

[Verlauf]

VersionÄnderungen
v23.4.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentations-Deprecation

Diese Eigenschaften sind bedingungslos true. Alle Prüfungen, die auf diesen Eigenschaften basieren, sind redundant.

DEP0189: process.features.tls_*

[Verlauf]

VersionÄnderungen
v23.4.0Nur Dokumentations-Deprecation.

Typ: Nur Dokumentations-Deprecation

process.features.tls_alpn, process.features.tls_ocsp und process.features.tls_sni sind veraltet, da ihre Werte garantiert identisch mit denen von process.features.tls sind.