Skip to content

API Deprecate

Le API di Node.js potrebbero essere deprecate per uno dei seguenti motivi:

  • L'utilizzo dell'API non è sicuro.
  • È disponibile un'API alternativa migliorata.
  • Sono previste modifiche che causano interruzioni all'API in una futura release principale.

Node.js utilizza quattro tipi di deprecazioni:

  • Solo documentazione
  • Applicazione (solo codice non node_modules)
  • Runtime (tutto il codice)
  • Fine vita

Una deprecazione Solo documentazione è una deprecazione espressa solo all'interno della documentazione dell'API di Node.js. Queste non generano effetti collaterali durante l'esecuzione di Node.js. Alcune deprecazioni Solo documentazione attivano un avviso di runtime quando vengono lanciate con il flag --pending-deprecation (o la sua alternativa, la variabile d'ambiente NODE_PENDING_DEPRECATION=1), in modo simile alle deprecazioni Runtime di seguito. Le deprecazioni Solo documentazione che supportano quel flag sono esplicitamente etichettate come tali nella lista delle API Deprecate.

Una deprecazione Applicazione solo per il codice non node_modules, genererà, per impostazione predefinita, un avviso di processo che verrà stampato su stderr la prima volta che l'API deprecata viene utilizzata nel codice che non viene caricato da node_modules. Quando viene utilizzato il flag della riga di comando --throw-deprecation, una deprecazione Runtime causerà la generazione di un errore. Quando viene utilizzato --pending-deprecation, gli avvisi verranno emessi anche per il codice caricato da node_modules.

Una deprecazione runtime per tutto il codice è simile alla deprecazione runtime per il codice non node_modules, tranne per il fatto che emette anche un avviso per il codice caricato da node_modules.

Una deprecazione di fine vita viene utilizzata quando la funzionalità è o sarà presto rimossa da Node.js.

Revoca delle deprecazioni

Occasionalmente, la deprecazione di un'API potrebbe essere invertita. In tali situazioni, questo documento verrà aggiornato con informazioni pertinenti alla decisione. Tuttavia, l'identificatore di deprecazione non verrà modificato.

Elenco delle API deprecate

DEP0001: http.OutgoingMessage.prototype.flush

[Cronologia]

VersioneModifiche
v14.0.0Fine vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v1.6.0Deprecazione Runtime.

Tipo: Fine vita

OutgoingMessage.prototype.flush() è stato rimosso. Utilizzare invece OutgoingMessage.prototype.flushHeaders().

[Cronologia]

VersioneModifiche
v8.0.0Fine del ciclo di vita.
v6.12.0È stato assegnato un codice di deprecazione.
v5.0.0Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

Il modulo _linklist è deprecato. Si prega di utilizzare un'alternativa userland.

DEP0003: _writableState.buffer

[Cronologia]

VersioneModifiche
v14.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.15Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

_writableState.buffer è stato rimosso. Utilizzare invece _writableState.getBuffer().

DEP0004: CryptoStream.prototype.readyState

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.4.0Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

La proprietà CryptoStream.prototype.readyState è stata rimossa.

DEP0005: Costruttore Buffer()

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione in fase di esecuzione.
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione solo documentale.

Tipo: Applicazione (solo codice non in node_modules)

La funzione Buffer() e il costruttore new Buffer() sono deprecati a causa di problemi di usabilità dell'API che possono portare a problemi di sicurezza accidentali.

In alternativa, utilizzare uno dei seguenti metodi per costruire oggetti Buffer:

Senza --pending-deprecation, gli avvisi di runtime si verificano solo per il codice non presente in node_modules. Ciò significa che non ci saranno avvisi di deprecazione per l'utilizzo di Buffer() nelle dipendenze. Con --pending-deprecation, si verifica un avviso di runtime indipendentemente da dove si verifica l'utilizzo di Buffer().

DEP0006: child_process options.customFds

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.14Deprecazione in fase di esecuzione.
v0.5.10Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

All'interno dei metodi spawn(), fork() e exec() del modulo child_process, l'opzione options.customFds è deprecata. Invece, è necessario utilizzare l'opzione options.stdio.

DEP0007: Sostituisci cluster worker.suicide con worker.exitedAfterDisconnect

[Cronologia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v7.0.0Deprecazione in fase di esecuzione.
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

In una versione precedente del cluster di Node.js, una proprietà booleana con il nome suicide è stata aggiunta all'oggetto Worker. L'intento di questa proprietà era di fornire un'indicazione di come e perché l'istanza Worker si è chiusa. In Node.js 6.0.0, la vecchia proprietà è stata deprecata e sostituita con una nuova proprietà worker.exitedAfterDisconnect. Il vecchio nome della proprietà non descriveva precisamente la semantica effettiva ed era inutilmente carico di emotività.

DEP0008: require('node:constants')

[Cronologia]

VersioneModifiche
v6.12.0È stato assegnato un codice di deprecazione.
v6.3.0Deprecazione solo documentale.

Tipo: Solo documentale

Il modulo node:constants è deprecato. Quando si richiede l'accesso alle costanti relative a moduli builtin specifici di Node.js, gli sviluppatori dovrebbero invece fare riferimento alla proprietà constants esposta dal modulo pertinente. Ad esempio, require('node:fs').constants e require('node:os').constants.

DEP0009: crypto.pbkdf2 senza digest

[Cronologia]

VersioneModifiche
v14.0.0Fine del ciclo di vita (per digest === null).
v11.0.0Deprecazione in fase di esecuzione (per digest === null).
v8.0.0Fine del ciclo di vita (per digest === undefined).
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione in fase di esecuzione (per digest === undefined).

Tipo: Fine del ciclo di vita

L'uso dell'API crypto.pbkdf2() senza specificare un digest è stato deprecato in Node.js 6.0 perché il metodo usava di default il digest non raccomandato 'SHA1'. In precedenza, veniva stampato un avviso di deprecazione. A partire da Node.js 8.0.0, chiamare crypto.pbkdf2() o crypto.pbkdf2Sync() con digest impostato su undefined genererà un TypeError.

A partire da Node.js v11.0.0, chiamare queste funzioni con digest impostato su null stamperebbe un avviso di deprecazione per allinearsi al comportamento quando digest è undefined.

Ora, tuttavia, passare sia undefined che null genererà un TypeError.

DEP0010: crypto.createCredentials

[Cronologia]

VersioneModifiche
v11.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.13Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

L'API crypto.createCredentials() è stata rimossa. Si prega di utilizzare tls.createSecureContext() invece.

DEP0011: crypto.Credentials

[Cronologia]

VersioneModifiche
v11.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.13Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

La classe crypto.Credentials è stata rimossa. Si prega di utilizzare tls.SecureContext invece.

DEP0012: Domain.dispose

[Cronologia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.7Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

Domain.dispose() è stato rimosso. Recuperare esplicitamente dalle azioni I/O fallite tramite i gestori di eventi di errore impostati sul dominio.

DEP0013: funzione asincrona fs senza callback

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v7.0.0Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

Chiamare una funzione asincrona senza una callback genera un TypeError in Node.js 10.0.0 e versioni successive. Vedi https://github.com/nodejs/node/pull/12562.

DEP0014: Interfaccia String legacy fs.read

[Cronologia]

VersioneModifiche
v8.0.0Fine del ciclo di vita.
v6.0.0Deprecazione in fase di esecuzione.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.1.96Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

L'interfaccia String legacy fs.read() è deprecata. Utilizzare invece l'API Buffer come indicato nella documentazione.

DEP0015: Interfaccia String legacy fs.readSync

[Cronologia]

VersioneModifiche
v8.0.0Fine del ciclo di vita.
v6.0.0Deprecazione in fase di esecuzione.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.1.96Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

L'interfaccia String legacy fs.readSync() è deprecata. Utilizzare invece l'API Buffer come indicato nella documentazione.

DEP0016: GLOBAL/root

[Cronologia]

VersioneModifiche
v14.0.0Fine del ciclo di vita.
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

Gli alias GLOBAL e root per la proprietà global sono stati deprecati in Node.js 6.0.0 e da allora sono stati rimossi.

DEP0017: Intl.v8BreakIterator

[Cronologia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v7.0.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

Intl.v8BreakIterator era un'estensione non standard ed è stata rimossa. Vedere Intl.Segmenter.

DEP0018: Rifiuti di promise non gestiti

[Cronologia]

VersioneModifiche
v15.0.0Fine del ciclo di vita.
v7.0.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

I rifiuti di promise non gestiti sono deprecati. Per impostazione predefinita, i rifiuti di promise che non vengono gestiti terminano il processo Node.js con un codice di uscita diverso da zero. Per modificare il modo in cui Node.js tratta i rifiuti non gestiti, utilizzare l'opzione della riga di comando --unhandled-rejections.

DEP0019: require('.') risolto al di fuori della directory

[Cronologia]

VersioneModifiche
v12.0.0Funzionalità rimossa.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v1.8.1Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

In alcuni casi, require('.') poteva essere risolto al di fuori della directory del pacchetto. Questo comportamento è stato rimosso.

DEP0020: Server.connections

[Cronologia]

VersioneModifiche
v15.0.0Server.connections è stato rimosso.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.9.7Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

La proprietà Server.connections è stata deprecata in Node.js v0.9.7 ed è stata rimossa. Utilizzare invece il metodo Server.getConnections().

DEP0021: Server.listenFD

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.7.12Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

Il metodo Server.listenFD() è stato deprecato e rimosso. Utilizzare invece Server.listen({fd: \<numero\>}).

DEP0022: os.tmpDir()

[Cronologia]

VersioneModifiche
v14.0.0Fine del ciclo di vita.
v7.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

L'API os.tmpDir() è stata deprecata in Node.js 7.0.0 ed è stata rimossa. Utilizzare invece os.tmpdir().

DEP0023: os.getNetworkInterfaces()

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.6.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

Il metodo os.getNetworkInterfaces() è deprecato. Utilizzare invece il metodo os.networkInterfaces().

DEP0024: REPLServer.prototype.convertToContext()

[Cronologia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v7.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

L'API REPLServer.prototype.convertToContext() è stata rimossa.

DEP0025: require('node:sys')

[Cronologia]

VersioneModifiche
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v1.0.0Deprecazione a runtime.

Tipo: Runtime

Il modulo node:sys è deprecato. Utilizzare invece il modulo util.

DEP0026: util.print()

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.3Deprecazione a runtime.

Tipo: Fine del ciclo di vita

util.print() è stato rimosso. Utilizzare invece console.log().

DEP0027: util.puts()

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.3Deprecazione a runtime.

Tipo: Fine del ciclo di vita

util.puts() è stato rimosso. Utilizzare invece console.log().

DEP0028: util.debug()

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.3Deprecazione a runtime.

Tipo: Fine del ciclo di vita

util.debug() è stato rimosso. Utilizzare invece console.error().

DEP0029: util.error()

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.3Deprecazione runtime.

Tipo: Fine del ciclo di vita

util.error() è stato rimosso. Si prega di utilizzare invece console.error().

DEP0030: SlowBuffer

[Cronologia]

VersioneModifiche
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione solo documentale.

Tipo: Solo documentazione

La classe SlowBuffer è deprecata. Si prega di utilizzare invece Buffer.allocUnsafeSlow(size).

DEP0031: ecdh.setPublicKey()

[Cronologia]

VersioneModifiche
v6.12.0È stato assegnato un codice di deprecazione.
v5.2.0Deprecazione solo documentale.

Tipo: Solo documentazione

Il metodo ecdh.setPublicKey() è ora deprecato poiché la sua inclusione nell'API non è utile.

DEP0032: modulo node:domain

[Cronologia]

VersioneModifiche
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v1.4.2Deprecazione solo documentale.

Tipo: Solo documentazione

Il modulo domain è deprecato e non deve essere utilizzato.

DEP0033: EventEmitter.listenerCount()

[Cronologia]

VersioneModifiche
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v3.2.0Deprecazione solo documentale.

Tipo: Solo documentazione

L'API events.listenerCount(emitter, eventName) è deprecata. Si prega di utilizzare invece emitter.listenerCount(eventName).

DEP0034: fs.exists(path, callback)

[Cronologia]

VersioneModifiche
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v1.0.0Deprecazione solo documentale.

Tipo: Solo documentazione

L'API fs.exists(path, callback) è deprecata. Si prega di utilizzare invece fs.stat() o fs.access().

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

[Cronologia]

VersioneModifiche
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.4.7Deprecazione solo documentale.

Tipo: Solo documentale

L'API fs.lchmod(path, mode, callback) è deprecata.

DEP0036: fs.lchmodSync(path, mode)

[Cronologia]

VersioneModifiche
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.4.7Deprecazione solo documentale.

Tipo: Solo documentale

L'API fs.lchmodSync(path, mode) è deprecata.

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

[Cronologia]

VersioneModifiche
v10.6.0Deprecazione revocata.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.4.7Deprecazione solo documentale.

Tipo: Deprecazione revocata

L'API fs.lchown(path, uid, gid, callback) era deprecata. La deprecazione è stata revocata perché le API di supporto necessarie sono state aggiunte in libuv.

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

[Cronologia]

VersioneModifiche
v10.6.0Deprecazione revocata.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.4.7Deprecazione solo documentale.

Tipo: Deprecazione revocata

L'API fs.lchownSync(path, uid, gid) era deprecata. La deprecazione è stata revocata perché le API di supporto necessarie sono state aggiunte in libuv.

DEP0039: require.extensions

[Cronologia]

VersioneModifiche
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.10.6Deprecazione solo documentale.

Tipo: Solo documentale

La proprietà require.extensions è deprecata.

DEP0040: modulo node:punycode

[Cronologia]

VersioneModifiche
v21.0.0Deprecazione in fase di esecuzione.
v16.6.0Aggiunto il supporto per --pending-deprecation.
v7.0.0Deprecazione solo documentale.

Tipo: Runtime

Il modulo punycode è deprecato. Si prega di utilizzare invece un'alternativa userland.

DEP0041: Variabile d'ambiente NODE_REPL_HISTORY_FILE

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v3.0.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

La variabile d'ambiente NODE_REPL_HISTORY_FILE è stata rimossa. Si prega di utilizzare invece NODE_REPL_HISTORY.

DEP0042: tls.CryptoStream

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.3Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

La classe tls.CryptoStream è stata rimossa. Si prega di utilizzare invece tls.TLSSocket.

DEP0043: tls.SecurePair

[Cronologia]

VersioneModifiche
v8.0.0Deprecazione in fase di runtime.
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione solo nella documentazione.
v0.11.15Deprecazione revocata.
v0.11.3Deprecazione in fase di runtime.

Tipo: Solo nella documentazione

La classe tls.SecurePair è deprecata. Si prega di utilizzare invece tls.TLSSocket.

DEP0044: util.isArray()

[Cronologia]

VersioneModifiche
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo nella documentazione.

Tipo: Runtime

L'API util.isArray() è deprecata. Si prega di utilizzare invece Array.isArray().

DEP0045: util.isBoolean()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione per fine del ciclo di vita.
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

L'API util.isBoolean() è stata rimossa. Si prega di utilizzare invece typeof arg === 'boolean'.

DEP0046: util.isBuffer()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione per fine del ciclo di vita.
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

L'API util.isBuffer() è stata rimossa. Si prega di utilizzare invece Buffer.isBuffer().

DEP0047: util.isDate()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentazione.

Tipo: End-of-Life

L'API util.isDate() è stata rimossa. Utilizzare invece arg instanceof Date.

DEP0048: util.isError()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentazione.

Tipo: End-of-Life

L'API util.isError() è stata rimossa. Utilizzare invece Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error.

DEP0049: util.isFunction()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentazione.

Tipo: End-of-Life

L'API util.isFunction() è stata rimossa. Utilizzare invece typeof arg === 'function'.

DEP0050: util.isNull()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentazione.

Tipo: End-of-Life

L'API util.isNull() è stata rimossa. Utilizzare invece arg === null.

DEP0051: util.isNullOrUndefined()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentazione.

Tipo: End-of-Life

L'API util.isNullOrUndefined() è stata rimossa. Utilizzare invece arg === null || arg === undefined.

DEP0052: util.isNumber()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentale.

Tipo: End-of-Life

L'API util.isNumber() è stata rimossa. Si prega di utilizzare invece typeof arg === 'number'.

DEP0053: util.isObject()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentale.

Tipo: End-of-Life

L'API util.isObject() è stata rimossa. Si prega di utilizzare invece arg && typeof arg === 'object'.

DEP0054: util.isPrimitive()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentale.

Tipo: End-of-Life

L'API util.isPrimitive() è stata rimossa. Si prega di utilizzare invece arg === null || (typeof arg !=='object' && typeof arg !== 'function').

DEP0055: util.isRegExp()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentale.

Tipo: End-of-Life

L'API util.isRegExp() è stata rimossa. Si prega di utilizzare invece arg instanceof RegExp.

DEP0056: util.isString()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione End-of-Life.
v22.0.0Deprecazione in fase di runtime.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo documentale.

Tipo: End-of-Life

L'API util.isString() è stata rimossa. Si prega di utilizzare invece typeof arg === 'string'.

DEP0057: util.isSymbol()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione di fine vita.
v22.0.0Deprecazione in fase di esecuzione.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo nella documentazione.

Tipo: Fine vita

L'API util.isSymbol() è stata rimossa. Si prega di utilizzare invece typeof arg === 'symbol'.

DEP0058: util.isUndefined()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione di fine vita.
v22.0.0Deprecazione in fase di esecuzione.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo nella documentazione.

Tipo: Fine vita

L'API util.isUndefined() è stata rimossa. Si prega di utilizzare invece arg === undefined.

DEP0059: util.log()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione di fine vita.
v22.0.0Deprecazione in fase di esecuzione.
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione solo nella documentazione.

Tipo: Fine vita

L'API util.log() è stata rimossa perché è una API legacy non manutenuta che è stata esposta involontariamente allo user land. Invece, si considerino le seguenti alternative in base alle proprie specifiche esigenze:

  • Librerie di Log di Terze Parti
  • Usa console.log(new Date().toLocaleString(), message)

Adottando una di queste alternative, è possibile effettuare la transizione da util.log() e scegliere una strategia di logging che si allinei ai requisiti specifici e alla complessità della propria applicazione.

DEP0060: util._extend()

[Cronologia]

VersioneModifiche
v22.0.0Deprecazione in fase di esecuzione.
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione solo nella documentazione.

Tipo: Runtime

L'API util._extend() è deprecata perché è una API legacy non manutenuta che è stata esposta involontariamente allo user land. Si prega di utilizzare invece target = Object.assign(target, source).

DEP0061: fs.SyncWriteStream

[Cronologia]

VersioneModifiche
v11.0.0Fine del ciclo di vita.
v8.0.0Deprecazione in fase di esecuzione.
v7.0.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

La classe fs.SyncWriteStream non è mai stata pensata per essere un'API accessibile pubblicamente ed è stata rimossa. Non sono disponibili API alternative. Si prega di utilizzare un'alternativa userland.

DEP0062: node --debug

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v8.0.0Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

--debug attiva la vecchia interfaccia del debugger V8, che è stata rimossa a partire da V8 5.8. È sostituita da Inspector, che viene attivato invece con --inspect.

DEP0063: ServerResponse.prototype.writeHeader()

[Cronologia]

VersioneModifiche
v8.0.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione

L'API ServerResponse.prototype.writeHeader() del modulo node:http è deprecata. Si prega di utilizzare invece ServerResponse.prototype.writeHead().

Il metodo ServerResponse.prototype.writeHeader() non è mai stato documentato come API ufficialmente supportata.

DEP0064: tls.createSecurePair()

[Cronologia]

VersioneModifiche
v8.0.0Deprecazione in fase di esecuzione.
v6.12.0È stato assegnato un codice di deprecazione.
v6.0.0Deprecazione solo nella documentazione.
v0.11.15Deprecazione revocata.
v0.11.3Deprecazione in fase di esecuzione.

Tipo: Runtime

L'API tls.createSecurePair() è stata deprecata nella documentazione in Node.js 0.11.3. Gli utenti dovrebbero utilizzare invece tls.Socket.

DEP0065: repl.REPL_MODE_MAGIC e NODE_REPL_MODE=magic

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v8.0.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

La costante REPL_MODE_MAGIC del modulo node:repl, utilizzata per l'opzione replMode, è stata rimossa. Il suo comportamento è stato funzionalmente identico a quello di REPL_MODE_SLOPPY da Node.js 6.0.0, quando è stato importato V8 5.0. Si prega di utilizzare invece REPL_MODE_SLOPPY.

La variabile d'ambiente NODE_REPL_MODE viene utilizzata per impostare l'replMode sottostante di una sessione node interattiva. Anche il suo valore, magic, è stato rimosso. Si prega di utilizzare invece sloppy.

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

[Cronologia]

VersioneModifiche
v12.0.0Deprecazione runtime.
v8.0.0Deprecazione solo documentazione.

Tipo: Runtime

Le proprietà OutgoingMessage.prototype._headers e OutgoingMessage.prototype._headerNames del modulo node:http sono deprecate. Utilizzare uno dei metodi pubblici (ad es. OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader()) per lavorare con gli header in uscita.

Le proprietà OutgoingMessage.prototype._headers e OutgoingMessage.prototype._headerNames non sono mai state documentate come proprietà ufficialmente supportate.

DEP0067: OutgoingMessage.prototype._renderHeaders

[Cronologia]

VersioneModifiche
v8.0.0Deprecazione solo documentazione.

Tipo: Solo documentazione

L'API OutgoingMessage.prototype._renderHeaders() del modulo node:http è deprecata.

La proprietà OutgoingMessage.prototype._renderHeaders non è mai stata documentata come API ufficialmente supportata.

DEP0068: node debug

[Cronologia]

VersioneModifiche
v15.0.0Il comando legacy node debug è stato rimosso.
v8.0.0Deprecazione runtime.

Tipo: Fine del ciclo di vita

node debug corrisponde al debugger CLI legacy che è stato sostituito con un debugger CLI basato su V8-inspector disponibile tramite node inspect.

DEP0069: vm.runInDebugContext(string)

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v9.0.0Deprecazione runtime.
v8.0.0Deprecazione solo documentazione.

Tipo: Fine del ciclo di vita

DebugContext è stato rimosso in V8 e non è disponibile in Node.js 10+.

DebugContext era un'API sperimentale.

DEP0070: async_hooks.currentId()

[Cronologia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v8.2.0Deprecazione runtime.

Tipo: Fine del ciclo di vita

async_hooks.currentId() è stato rinominato async_hooks.executionAsyncId() per chiarezza.

Questa modifica è stata apportata mentre async_hooks era un'API sperimentale.

DEP0071: async_hooks.triggerId()

[Cronologia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v8.2.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

async_hooks.triggerId() è stato rinominato in async_hooks.triggerAsyncId() per maggiore chiarezza.

Questa modifica è stata apportata quando async_hooks era un'API sperimentale.

DEP0072: async_hooks.AsyncResource.triggerId()

[Cronologia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v8.2.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

async_hooks.AsyncResource.triggerId() è stato rinominato in async_hooks.AsyncResource.triggerAsyncId() per maggiore chiarezza.

Questa modifica è stata apportata quando async_hooks era un'API sperimentale.

DEP0073: Diverse proprietà interne di net.Server

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v9.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

L'accesso a diverse proprietà interne e non documentate delle istanze di net.Server con nomi inappropriati è deprecato.

Poiché l'API originale non era documentata e non generalmente utile per il codice non interno, non viene fornita alcuna API di sostituzione.

DEP0074: REPLServer.bufferedCommand

[Cronologia]

VersioneModifiche
v15.0.0Fine del ciclo di vita.
v9.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

La proprietà REPLServer.bufferedCommand è stata deprecata a favore di REPLServer.clearBufferedCommand().

DEP0075: REPLServer.parseREPLKeyword()

[Cronologia]

VersioneModifiche
v15.0.0Fine del ciclo di vita.
v9.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

REPLServer.parseREPLKeyword() è stato rimosso dalla visibilità dello spazio utente.

DEP0076: tls.parseCertString()

[Cronologia]

VersioneModifiche
v18.0.0Fine del ciclo di vita.
v9.0.0Deprecazione a runtime.
v8.6.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

tls.parseCertString() era un helper di analisi banale che è stato reso pubblico per errore. Sebbene dovesse analizzare le stringhe del soggetto e dell'emittente del certificato, non ha mai gestito correttamente i nomi distinti relativi a più valori.

Le versioni precedenti di questo documento suggerivano di utilizzare querystring.parse() come alternativa a tls.parseCertString(). Tuttavia, anche querystring.parse() non gestisce correttamente tutti gli argomenti del certificato e non deve essere utilizzato.

DEP0077: Module._debug()

[Cronologia]

VersioneModifiche
v9.0.0Deprecazione in runtime.

Tipo: Runtime

Module._debug() è obsoleto.

La funzione Module._debug() non è mai stata documentata come un'API ufficialmente supportata.

DEP0078: REPLServer.turnOffEditorMode()

[Cronologia]

VersioneModifiche
v15.0.0Fine del ciclo di vita.
v9.0.0Deprecazione in runtime.

Tipo: Fine del ciclo di vita

REPLServer.turnOffEditorMode() è stato rimosso dalla visibilità dell'userland.

DEP0079: Funzione di ispezione personalizzata sugli oggetti tramite .inspect()

[Cronologia]

VersioneModifiche
v11.0.0Fine del ciclo di vita.
v10.0.0Deprecazione in runtime.
v8.7.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

L'utilizzo di una proprietà denominata inspect su un oggetto per specificare una funzione di ispezione personalizzata per util.inspect() è obsoleto. Utilizzare invece util.inspect.custom. Per la retrocompatibilità con Node.js precedente alla versione 6.4.0, possono essere specificati entrambi.

DEP0080: path._makeLong()

[Cronologia]

VersioneModifiche
v9.0.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione

Il metodo interno path._makeLong() non era destinato all'uso pubblico. Tuttavia, i moduli userland lo hanno trovato utile. L'API interna è obsoleta e sostituita con un metodo path.toNamespacedPath() pubblico identico.

DEP0081: fs.truncate() che utilizza un descrittore di file

[Cronologia]

VersioneModifiche
v9.0.0Deprecazione in runtime.

Tipo: Runtime

L'utilizzo di fs.truncate() e fs.truncateSync() con un descrittore di file è obsoleto. Utilizzare fs.ftruncate() o fs.ftruncateSync() per lavorare con i descrittori di file.

DEP0082: REPLServer.prototype.memory()

[Cronologia]

VersioneModifiche
v15.0.0Fine del ciclo di vita.
v9.0.0Deprecazione in runtime.

Tipo: Fine del ciclo di vita

REPLServer.prototype.memory() è necessario solo per i meccanismi interni del REPLServer stesso. Non utilizzare questa funzione.

DEP0083: Disabilitazione di ECDH impostando ecdhCurve a false

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v9.2.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita.

L'opzione ecdhCurve per tls.createSecureContext() e tls.TLSSocket poteva essere impostata su false per disabilitare completamente ECDH solo sul server. Questa modalità è stata deprecata in preparazione alla migrazione a OpenSSL 1.1.0 e per coerenza con il client ed ora non è supportata. Utilizzare invece il parametro ciphers.

DEP0084: Richiesta di dipendenze interne in bundle

[Cronologia]

VersioneModifiche
v12.0.0Questa funzionalità è stata rimossa.
v10.0.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

Dalle versioni 4.4.0 e 5.2.0 di Node.js, diversi moduli destinati esclusivamente all'uso interno sono stati erroneamente esposti al codice utente tramite require(). Questi moduli erano:

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

I moduli v8/* non hanno alcuna esportazione e, se non importati in un ordine specifico, genererebbero effettivamente errori. Pertanto, non ci sono praticamente casi d'uso legittimi per importarli tramite require().

D'altra parte, node-inspect può essere installato localmente tramite un gestore di pacchetti, in quanto è pubblicato nel registro npm con lo stesso nome. Non è necessaria alcuna modifica al codice sorgente se ciò viene fatto.

DEP0085: API sensibile AsyncHooks

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v9.4.0, v8.10.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

L'API sensibile AsyncHooks non è mai stata documentata e presentava vari piccoli problemi. Utilizzare invece l'API AsyncResource. Vedere https://github.com/nodejs/node/issues/15572.

DEP0086: Rimuovi runInAsyncIdScope

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v9.4.0, v8.10.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

runInAsyncIdScope non emette l'evento 'before' o 'after' e può quindi causare molti problemi. Vedi https://github.com/nodejs/node/issues/14328.

DEP0089: require('node:assert')

[Cronologia]

VersioneModifiche
v12.8.0Deprecazione revocata.
v9.9.0, v8.13.0Deprecazione solo nella documentazione.

Tipo: Deprecazione revocata

L'importazione diretta di assert non era raccomandata in quanto le funzioni esposte utilizzano controlli di uguaglianza debole. La deprecazione è stata revocata perché l'uso del modulo node:assert non è scoraggiato e la deprecazione ha causato confusione negli sviluppatori.

DEP0090: Lunghezze non valide del tag di autenticazione GCM

[Cronologia]

VersioneModifiche
v11.0.0Fine del ciclo di vita.
v10.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

Node.js era solito supportare tutte le lunghezze dei tag di autenticazione GCM accettate da OpenSSL quando si chiama decipher.setAuthTag(). A partire da Node.js v11.0.0, sono consentite solo lunghezze di tag di autenticazione di 128, 120, 112, 104, 96, 64 e 32 bit. I tag di autenticazione di altre lunghezze non sono validi secondo NIST SP 800-38D.

DEP0091: crypto.DEFAULT_ENCODING

[Cronologia]

VersioneModifiche
v20.0.0Fine del ciclo di vita.
v10.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

La proprietà crypto.DEFAULT_ENCODING esisteva solo per la compatibilità con le versioni di Node.js precedenti alle versioni 0.9.3 ed è stata rimossa.

DEP0092: this di livello superiore associato a module.exports

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione

L'assegnazione di proprietà a this di livello superiore in alternativa a module.exports è deprecata. Gli sviluppatori dovrebbero invece utilizzare exports o module.exports.

DEP0093: crypto.fips è obsoleto e sostituito

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione a runtime.
v10.0.0Deprecazione solo nella documentazione.

Tipo: Runtime

La proprietà crypto.fips è obsoleta. Si prega di utilizzare invece crypto.setFips() e crypto.getFips().

DEP0094: Utilizzo di assert.fail() con più di un argomento

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione a runtime.

Tipo: Runtime

L'utilizzo di assert.fail() con più di un argomento è obsoleto. Utilizzare assert.fail() con un solo argomento o utilizzare un metodo diverso del modulo node:assert.

DEP0095: timers.enroll()

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione a runtime.

Tipo: Runtime

timers.enroll() è obsoleto. Si prega di utilizzare invece setTimeout() o setInterval() documentati pubblicamente.

DEP0096: timers.unenroll()

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione a runtime.

Tipo: Runtime

timers.unenroll() è obsoleto. Si prega di utilizzare invece clearTimeout() o clearInterval() documentati pubblicamente.

DEP0097: MakeCallback con proprietà domain

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione a runtime.

Tipo: Runtime

Gli utenti di MakeCallback che aggiungono la proprietà domain per trasportare il contesto, dovrebbero iniziare a utilizzare la variante async_context di MakeCallback o CallbackScope, oppure la classe AsyncResource di alto livello.

DEP0098: API AsyncHooks embedder AsyncResource.emitBefore e AsyncResource.emitAfter

[Cronologia]

VersioneModifiche
v12.0.0Fine vita.
v10.0.0, v9.6.0, v8.12.0Deprecazione a runtime.

Tipo: Fine vita

L'API embedded fornita da AsyncHooks espone i metodi .emitBefore() e .emitAfter() che sono molto facili da usare in modo errato e possono portare a errori irrecuperabili.

Utilizzare invece l'API asyncResource.runInAsyncScope() che fornisce un'alternativa molto più sicura e conveniente. Vedere https://github.com/nodejs/node/pull/18513.

DEP0099: API C++ node::MakeCallback non consapevoli del contesto asincrono

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione in fase di compilazione.

Tipo: In fase di compilazione

Alcune versioni delle API node::MakeCallback disponibili per gli addon nativi sono deprecate. Si prega di utilizzare le versioni dell'API che accettano un parametro async_context.

DEP0100: process.assert()

[Cronologia]

VersioneModifiche
v23.0.0Fine del ciclo di vita.
v10.0.0Deprecazione in fase di esecuzione.
v0.3.7Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

process.assert() è deprecato. Si prega di utilizzare il modulo assert invece.

Questa non è mai stata una funzionalità documentata.

DEP0101: --with-lttng

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.

Tipo: Fine del ciclo di vita

L'opzione di compilazione --with-lttng è stata rimossa.

DEP0102: Utilizzo di noAssert nelle operazioni Buffer#(read|write)

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.

Tipo: Fine del ciclo di vita

L'utilizzo dell'argomento noAssert non ha più alcuna funzionalità. Tutti gli input vengono verificati indipendentemente dal valore di noAssert. Saltare la verifica potrebbe portare a errori e crash difficili da trovare.

DEP0103: Controlli dei tipi process.binding('util').is[...]

[Cronologia]

VersioneModifiche
v10.9.0Superato da DEP0111.
v10.0.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione (supporta --pending-deprecation)

L'utilizzo di process.binding() in generale dovrebbe essere evitato. I metodi di controllo dei tipi in particolare possono essere sostituiti utilizzando util.types.

Questa deprecazione è stata superata dalla deprecazione dell'API process.binding() (DEP0111).

DEP0104: Coercizione di stringhe di process.env

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione (supporta --pending-deprecation)

Quando si assegna una proprietà non stringa a process.env, il valore assegnato viene implicitamente convertito in una stringa. Questo comportamento è deprecato se il valore assegnato non è una stringa, un booleano o un numero. In futuro, tale assegnazione potrebbe comportare un errore. Si prega di convertire la proprietà in una stringa prima di assegnarla a process.env.

DEP0105: decipher.finaltol

[Cronologia]

VersioneModifiche
v11.0.0Fine del ciclo di vita.
v10.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

decipher.finaltol() non è mai stato documentato ed era un alias per decipher.final(). Questa API è stata rimossa ed è consigliabile utilizzare invece decipher.final().

DEP0106: crypto.createCipher e crypto.createDecipher

[Cronologia]

VersioneModifiche
v22.0.0Fine del ciclo di vita.
v11.0.0Deprecazione a runtime.
v10.0.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

crypto.createCipher() e crypto.createDecipher() sono stati rimossi perché utilizzano una funzione di derivazione della chiave debole (MD5 senza salt) e vettori di inizializzazione statici. Si consiglia di derivare una chiave utilizzando crypto.pbkdf2() o crypto.scrypt() con salt casuali e di utilizzare crypto.createCipheriv() e crypto.createDecipheriv() per ottenere rispettivamente gli oggetti Cipher e Decipher.

DEP0107: tls.convertNPNProtocols()

[Cronologia]

VersioneModifiche
v11.0.0Fine del ciclo di vita.
v10.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

Questa era una funzione helper non documentata e non destinata all'uso al di fuori del core di Node.js e obsoleta dalla rimozione del supporto NPN (Next Protocol Negotiation).

DEP0108: zlib.bytesRead

[Cronologia]

VersioneModifiche
v23.0.0Fine del ciclo di vita.
v11.0.0Deprecazione a runtime.
v10.0.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

Alias deprecato per zlib.bytesWritten. Il nome originale è stato scelto perché aveva senso interpretare il valore anche come il numero di byte letti dal motore, ma è incoerente con altri stream in Node.js che espongono valori con questi nomi.

DEP0109: Supporto http, https e tls per URL non validi

[Cronologia]

VersioneModifiche
v16.0.0Fine del ciclo di vita.
v11.0.0Deprecazione a runtime.

Tipo: Fine del ciclo di vita

Alcuni URL precedentemente supportati (ma strettamente non validi) erano accettati tramite le API http.request(), http.get(), https.request(), https.get() e tls.checkServerIdentity() perché erano accettati dalla vecchia API url.parse(). Le API menzionate ora utilizzano il parser URL WHATWG che richiede URL strettamente validi. Passare un URL non valido è deprecato e il supporto verrà rimosso in futuro.

DEP0110: Dati memorizzati nella cache di vm.Script

[Cronologia]

VersioneModifiche
v10.6.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione

L'opzione produceCachedData è deprecata. Utilizzare invece script.createCachedData().

DEP0111: process.binding()

[Cronologia]

VersioneModifiche
v11.12.0Aggiunto il supporto per --pending-deprecation.
v10.9.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione (supporta --pending-deprecation)

process.binding() è destinato esclusivamente all'uso da parte del codice interno di Node.js.

Sebbene process.binding() non abbia raggiunto lo stato di fine ciclo di vita in generale, non è disponibile quando il modello di autorizzazioni è abilitato.

DEP0112: API private dgram

[Cronologia]

VersioneModifiche
v11.0.0Deprecazione a runtime.

Tipo: Runtime

Il modulo node:dgram conteneva precedentemente diverse API che non erano mai destinate all'accesso al di fuori del core di Node.js: Socket.prototype._handle, Socket.prototype._receiving, Socket.prototype._bindState, Socket.prototype._queue, Socket.prototype._reuseAddr, Socket.prototype._healthCheck(), Socket.prototype._stopReceiving() e dgram._createSocketHandle().

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

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v11.0.0Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

Cipher.setAuthTag() e Decipher.getAuthTag() non sono più disponibili. Non sono mai stati documentati e generavano un errore quando venivano chiamati.

DEP0114: crypto._toBuf()

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v11.0.0Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

La funzione crypto._toBuf() non è stata progettata per essere utilizzata da moduli al di fuori del core di Node.js ed è stata rimossa.

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

[Cronologia]

VersioneModifiche
v11.0.0Aggiunta la deprecazione solo nella documentazione con supporto per --pending-deprecation.

Tipo: Solo documentazione (supporta --pending-deprecation)

Nelle versioni recenti di Node.js, non c'è differenza tra crypto.randomBytes() e crypto.pseudoRandomBytes(). Quest'ultimo è deprecato insieme agli alias non documentati crypto.prng() e crypto.rng() a favore di crypto.randomBytes() e potrebbe essere rimosso in una versione futura.

DEP0116: API URL legacy

[Cronologia]

VersioneModifiche
v19.0.0, v18.13.0url.parse() è di nuovo deprecato in DEP0169.
v15.13.0, v14.17.0Deprecazione revocata. Lo stato è cambiato in "Legacy".
v11.0.0Deprecazione solo documentazione.

Tipo: Deprecazione revocata

La legacy URL API è deprecata. Ciò include url.format(), url.parse(), url.resolve() e il legacy urlObject. Si prega di utilizzare invece la WHATWG URL API.

DEP0117: Handle crittografici nativi

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v11.0.0Deprecazione runtime.

Tipo: Fine del ciclo di vita

Le versioni precedenti di Node.js esponevano handle a oggetti nativi interni tramite la proprietà _handle delle classi Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign e Verify. La proprietà _handle è stata rimossa perché l'uso improprio dell'oggetto nativo può portare al crash dell'applicazione.

DEP0118: Supporto di dns.lookup() per un nome host falsy

[Cronologia]

VersioneModifiche
v11.0.0Deprecazione runtime.

Tipo: Runtime

Le versioni precedenti di Node.js supportavano dns.lookup() con un nome host falsy come dns.lookup(false) a causa della retrocompatibilità. Questo comportamento non è documentato e si pensa che non venga utilizzato nelle app del mondo reale. Diventerà un errore nelle future versioni di Node.js.

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

[Cronologia]

VersioneModifiche
v11.0.0Deprecazione solo documentazione.

Tipo: Solo documentazione (supporta --pending-deprecation)

process.binding('uv').errname() è deprecato. Si prega di utilizzare invece util.getSystemErrorName().

DEP0120: Supporto per i contatori delle prestazioni di Windows

[Cronologia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v11.0.0Deprecazione runtime.

Tipo: Fine del ciclo di vita

Il supporto per i contatori delle prestazioni di Windows è stato rimosso da Node.js. Le funzioni non documentate COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST() e COUNTER_HTTP_CLIENT_RESPONSE() sono state deprecate.

DEP0121: net._setSimultaneousAccepts()

[Cronologia]

VersioneModifiche
v12.0.0Deprecazione runtime.

Tipo: Runtime

La funzione non documentata net._setSimultaneousAccepts() era originariamente destinata al debug e all'ottimizzazione delle prestazioni quando si utilizzavano i moduli node:child_process e node:cluster su Windows. La funzione non è generalmente utile e viene rimossa. Vedere la discussione qui: https://github.com/nodejs/node/issues/18391

DEP0122: tls Server.prototype.setOptions()

[Cronologia]

VersioneModifiche
v12.0.0Deprecazione in fase di runtime.

Tipo: Runtime

Si prega di utilizzare invece Server.prototype.setSecureContext().

DEP0123: impostazione del ServerName TLS su un indirizzo IP

[Cronologia]

VersioneModifiche
v12.0.0Deprecazione in fase di runtime.

Tipo: Runtime

L'impostazione del ServerName TLS su un indirizzo IP non è consentita da RFC 6066. Questo verrà ignorato in una versione futura.

DEP0124: utilizzo di REPLServer.rli

[Cronologia]

VersioneModifiche
v15.0.0Fine del ciclo di vita.
v12.0.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

Questa proprietà è un riferimento all'istanza stessa.

DEP0125: require('node:_stream_wrap')

[Cronologia]

VersioneModifiche
v12.0.0Deprecazione in fase di runtime.

Tipo: Runtime

Il modulo node:_stream_wrap è deprecato.

DEP0126: timers.active()

[Cronologia]

VersioneModifiche
v11.14.0Deprecazione in fase di runtime.

Tipo: Runtime

Il timers.active() precedentemente non documentato è deprecato. Si prega di utilizzare invece timeout.refresh() documentato pubblicamente. Se è necessario fare nuovamente riferimento al timeout, timeout.ref() può essere utilizzato senza alcun impatto sulle prestazioni da Node.js 10.

DEP0127: timers._unrefActive()

[Cronologia]

VersioneModifiche
v11.14.0Deprecazione in fase di runtime.

Tipo: Runtime

Il timers._unrefActive() precedentemente non documentato e "privato" è deprecato. Si prega di utilizzare invece timeout.refresh() documentato pubblicamente. Se è necessario annullare il riferimento al timeout, timeout.unref() può essere utilizzato senza alcun impatto sulle prestazioni da Node.js 10.

DEP0128: moduli con una voce main non valida e un file index.js

[Cronologia]

VersioneModifiche
v16.0.0Deprecazione in fase di runtime.
v12.0.0Solo documentazione.

Tipo: Runtime

I moduli che hanno una voce main non valida (ad es. ./does-not-exist.js) e hanno anche un file index.js nella directory di livello superiore risolveranno il file index.js. Ciò è deprecato e genererà un errore nelle future versioni di Node.js.

DEP0129: ChildProcess._channel

[Cronologia]

VersioneModifiche
v13.0.0Deprecazione in fase di esecuzione.
v11.14.0Solo documentazione.

Tipo: Esecuzione

La proprietà _channel degli oggetti del processo figlio restituiti da spawn() e funzioni simili non è destinata all'uso pubblico. Utilizzare invece ChildProcess.channel.

DEP0130: Module.createRequireFromPath()

[Cronologia]

VersioneModifiche
v16.0.0Fine del ciclo di vita.
v13.0.0Deprecazione in fase di esecuzione.
v12.2.0Solo documentazione.

Tipo: Fine del ciclo di vita

Utilizzare invece module.createRequire().

DEP0131: Parser HTTP legacy

[Cronologia]

VersioneModifiche
v13.0.0Questa funzionalità è stata rimossa.
v12.22.0Deprecazione in fase di esecuzione.
v12.3.0Solo documentazione.

Tipo: Fine del ciclo di vita

Il parser HTTP legacy, utilizzato per impostazione predefinita nelle versioni di Node.js precedenti alla 12.0.0, è deprecato ed è stato rimosso nella v13.0.0. Prima della v13.0.0, il flag della riga di comando --http-parser=legacy poteva essere utilizzato per ripristinare l'utilizzo del parser legacy.

DEP0132: worker.terminate() con callback

[Cronologia]

VersioneModifiche
v12.5.0Deprecazione in fase di esecuzione.

Tipo: Esecuzione

Passare una callback a worker.terminate() è deprecato. Utilizzare invece la Promise restituita o un listener all'evento 'exit' del worker.

DEP0133: http connection

[Cronologia]

VersioneModifiche
v12.12.0Deprecazione solo documentazione.

Tipo: Solo documentazione

Preferire response.socket a response.connection e request.socket a request.connection.

DEP0134: process._tickCallback

[Cronologia]

VersioneModifiche
v12.12.0Deprecazione solo documentazione.

Tipo: Solo documentazione (supporta --pending-deprecation)

La proprietà process._tickCallback non è mai stata documentata come API ufficialmente supportata.

DEP0135: WriteStream.open() e ReadStream.open() sono interni

[Cronologia]

VersioneModifiche
v13.0.0Deprecazione a runtime.

Tipo: Runtime

WriteStream.open() e ReadStream.open() sono API interne non documentate che non hanno senso utilizzare nello userspace. Gli stream di file dovrebbero essere sempre aperti tramite i relativi metodi factory fs.createWriteStream() e fs.createReadStream() o passando un descrittore di file nelle opzioni.

DEP0136: http finished

[Cronologia]

VersioneModifiche
v13.4.0, v12.16.0Deprecazione solo della documentazione.

Tipo: Solo documentazione

response.finished indica se response.end() è stato chiamato, non se 'finish' è stato emesso e i dati sottostanti sono stati scaricati.

Utilizzare invece response.writableFinished o response.writableEnded per evitare l'ambiguità.

Per mantenere il comportamento esistente, response.finished dovrebbe essere sostituito con response.writableEnded.

DEP0137: Chiusura di fs.FileHandle durante il garbage collection

[Cronologia]

VersioneModifiche
v14.0.0Deprecazione a runtime.

Tipo: Runtime

Consentire la chiusura di un oggetto fs.FileHandle durante il garbage collection è deprecato. In futuro, ciò potrebbe comportare un errore che terminerà il processo.

Assicurarsi che tutti gli oggetti fs.FileHandle siano esplicitamente chiusi utilizzando FileHandle.prototype.close() quando fs.FileHandle non è più necessario:

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

[Cronologia]

VersioneModifiche
v14.0.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione

process.mainModule è una funzionalità solo CommonJS mentre l'oggetto globale process è condiviso con ambienti non-CommonJS. Il suo utilizzo all'interno di moduli ECMAScript non è supportato.

È deprecato a favore di require.main, perché serve allo stesso scopo ed è disponibile solo in ambienti CommonJS.

DEP0139: process.umask() senza argomenti

[Cronologia]

VersioneModifiche
v14.0.0, v12.19.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione

Chiamare process.umask() senza argomenti fa sì che l'umask a livello di processo venga scritto due volte. Questo introduce una race condition tra i thread ed è una potenziale vulnerabilità di sicurezza. Non esiste un'API alternativa sicura e multipiattaforma.

DEP0140: Utilizzare request.destroy() invece di request.abort()

[Cronologia]

VersioneModifiche
v14.1.0, v13.14.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione

Utilizzare request.destroy() invece di request.abort().

DEP0141: repl.inputStream e repl.outputStream

[Cronologia]

VersioneModifiche
v14.3.0Solo nella documentazione (supporta [--pending-deprecation][]).

Tipo: Solo nella documentazione (supporta --pending-deprecation)

Il modulo node:repl ha esportato lo stream di input e output due volte. Utilizzare .input invece di .inputStream e .output invece di .outputStream.

DEP0142: repl._builtinLibs

[Cronologia]

VersioneModifiche
v14.3.0Solo nella documentazione (supporta [--pending-deprecation][]).

Tipo: Solo nella documentazione

Il modulo node:repl esporta una proprietà _builtinLibs che contiene un array di moduli integrati. Finora era incompleto ed è invece meglio fare affidamento su require('node:module').builtinModules.

DEP0143: Transform._transformState

[Cronologia]

VersioneModifiche
v14.5.0Deprecazione in fase di esecuzione.

Tipo: Runtime Transform._transformState verrà rimosso nelle versioni future in cui non è più richiesto a causa della semplificazione dell'implementazione.

DEP0144: module.parent

[Cronologia]

VersioneModifiche
v14.6.0, v12.19.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione (supporta --pending-deprecation)

Un modulo CommonJS può accedere al primo modulo che lo ha richiesto tramite module.parent. Questa funzionalità è deprecata perché non funziona in modo coerente in presenza di moduli ECMAScript e perché fornisce una rappresentazione inaccurata del grafico dei moduli CommonJS.

Alcuni moduli lo utilizzano per verificare se sono il punto di ingresso del processo corrente. Invece, si consiglia di confrontare require.main e module:

js
if (require.main === module) {
  // Sezione di codice che verrà eseguita solo se il file corrente è il punto di ingresso.
}

Quando si cercano i moduli CommonJS che hanno richiesto quello corrente, è possibile utilizzare require.cache e module.children:

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

DEP0145: socket.bufferSize

[Cronologia]

VersioneModifiche
v14.6.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione

socket.bufferSize è solo un alias per writable.writableLength.

DEP0146: new crypto.Certificate()

[Cronologia]

VersioneModifiche
v14.9.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione

Il crypto.Certificate() constructor è deprecato. Invece, utilizzare i metodi statici di crypto.Certificate().

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

[Cronologia]

VersioneModifiche
v16.0.0Deprecazione in fase di esecuzione.
v15.0.0Deprecazione in fase di esecuzione per comportamento permissivo.
v14.14.0Deprecazione solo nella documentazione.

Tipo: Runtime

Nelle versioni future di Node.js, l'opzione recursive verrà ignorata per fs.rmdir, fs.rmdirSync e fs.promises.rmdir.

Invece, utilizzare fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) o fs.promises.rm(path, { recursive: true, force: true }).

DEP0148: Mappature di cartelle in "exports" ( "/" finale)

[Cronologia]

VersioneModifiche
v17.0.0Fine del ciclo di vita.
v16.0.0Deprecazione in fase di esecuzione.
v15.1.0Deprecazione in fase di esecuzione per importazioni auto-referenziali.
v14.13.0Deprecazione solo nella documentazione.

Tipo: Runtime

L'utilizzo di "/" finale per definire mappature di sottocartelle nei campi esportazioni di sottopercorso o importazioni di sottopercorso è deprecato. Invece, utilizzare pattern di sottopercorso.

DEP0149: http.IncomingMessage#connection

[Cronologia]

VersioneModifiche
v16.0.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione.

Preferire message.socket a message.connection.

DEP0150: Modifica del valore di process.config

[Cronologia]

VersioneModifiche
v19.0.0Fine del ciclo di vita.
v16.0.0Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

La proprietà process.config fornisce accesso alle impostazioni di compilazione di Node.js. Tuttavia, la proprietà è modificabile e quindi soggetta a manomissioni. La possibilità di modificare il valore verrà rimossa in una versione futura di Node.js.

DEP0151: Ricerca dell'indice principale e ricerca dell'estensione

[Cronologia]

VersioneModifiche
v16.0.0Deprecazione in fase di esecuzione.
v15.8.0, v14.18.0Deprecazione solo nella documentazione con supporto --pending-deprecation.

Tipo: Runtime

In precedenza, le ricerche di index.js e di estensione si applicavano alla risoluzione del punto di ingresso principale import 'pkg', anche durante la risoluzione dei moduli ES.

Con questa deprecazione, tutte le risoluzioni del punto di ingresso principale del modulo ES richiedono una voce "exports" o "main" esplicita con l'esatta estensione del file.

DEP0152: Proprietà Extension PerformanceEntry

[Cronologia]

VersioneModifiche
v16.0.0Deprecazione in fase di esecuzione.

Tipo: Runtime

I tipi di oggetto <PerformanceEntry> 'gc', 'http2' e 'http' hanno proprietà aggiuntive assegnate che forniscono informazioni supplementari. Queste proprietà sono ora disponibili all'interno della proprietà standard detail dell'oggetto PerformanceEntry. Gli accessor esistenti sono stati deprecati e non devono più essere utilizzati.

DEP0153: Forzatura del tipo delle opzioni dns.lookup e dnsPromises.lookup

[Cronologia]

VersioneModifiche
v18.0.0Fine del ciclo di vita.
v17.0.0Deprecazione in fase di esecuzione.
v16.8.0Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

L'utilizzo di un valore non null o non intero per l'opzione family, un valore non null o non numerico per l'opzione hints, un valore non null o non booleano per l'opzione all o un valore non null o non booleano per l'opzione verbatim in dns.lookup() e dnsPromises.lookup() genera un errore ERR_INVALID_ARG_TYPE.

DEP0154: Opzioni di generazione della coppia di chiavi RSA-PSS

[Cronologia]

VersioneModifiche
v20.0.0Deprecazione in fase di esecuzione.
v16.10.0Deprecazione solo documentale.

Tipo: In fase di esecuzione

Le opzioni 'hash' e 'mgf1Hash' sono sostituite da 'hashAlgorithm' e 'mgf1HashAlgorithm'.

DEP0155: Barre finali nelle risoluzioni dello specificatore di pattern

[Cronologia]

VersioneModifiche
v17.0.0Deprecazione in fase di esecuzione.
v16.10.0Deprecazione solo documentale con supporto --pending-deprecation.

Tipo: In fase di esecuzione

La rimappatura degli specificatori che terminano con "/" come import 'pkg/x/' è obsoleta per le risoluzioni di pattern "exports" e "imports" del pacchetto.

DEP0156: Proprietà .aborted ed evento 'abort', 'aborted' in http

[Cronologia]

VersioneModifiche
v17.0.0, v16.12.0Deprecazione solo documentale.

Tipo: Solo documentale

Passare all'API <Stream> invece, poiché http.ClientRequest, http.ServerResponse e http.IncomingMessage sono tutti basati su stream. Controllare stream.destroyed invece della proprietà .aborted e ascoltare 'close' invece dell'evento 'abort', 'aborted'.

La proprietà .aborted e l'evento 'abort' sono utili solo per rilevare le chiamate a .abort(). Per chiudere una richiesta in anticipo, utilizzare Stream .destroy([error]) quindi verificare che la proprietà .destroyed e l'evento 'close' debbano avere lo stesso effetto. L'estremità ricevente deve anche controllare il valore readable.readableEnded su http.IncomingMessage per ottenere se si trattava di un'interruzione o di una distruzione corretta.

DEP0157: Supporto Thenable negli stream

[Cronologia]

VersioneModifiche
v18.0.0Fine del ciclo di vita.
v17.2.0, v16.14.0Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

Una funzionalità non documentata degli stream di Node.js era quella di supportare i thenable nei metodi di implementazione. Questa è ora deprecata, utilizzare invece i callback ed evitare l'uso di funzioni async per i metodi di implementazione degli stream.

Questa funzionalità ha fatto sì che gli utenti riscontrassero problemi imprevisti in cui l'utente implementa la funzione in stile callback ma utilizza ad esempio un metodo async che causerebbe un errore poiché la combinazione di promesse e semantica di callback non è valida.

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

DEP0158: buffer.slice(start, end)

[Cronologia]

VersioneModifiche
v17.5.0, v16.15.0Deprecazione solo documentale.

Tipo: Solo documentazione

Questo metodo è stato deprecato perché non è compatibile con Uint8Array.prototype.slice(), che è una superclasse di Buffer.

Utilizzare invece buffer.subarray che fa la stessa cosa.

DEP0159: ERR_INVALID_CALLBACK

[Cronologia]

VersioneModifiche
v18.0.0Fine del ciclo di vita.

Tipo: Fine del ciclo di vita

Questo codice di errore è stato rimosso a causa dell'aggiunta di ulteriore confusione agli errori utilizzati per la convalida del tipo di valore.

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

[Cronologia]

VersioneModifiche
v18.0.0Deprecazione runtime.
v17.6.0, v16.15.0Deprecazione solo documentale.

Tipo: Runtime.

Questo evento è stato deprecato perché non funzionava con i combinatori di promesse V8, il che ne ha diminuito l'utilità.

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

[Cronologia]

VersioneModifiche
v17.6.0, v16.15.0Deprecazione solo documentale.

Tipo: Solo documentazione

Le funzioni process._getActiveHandles() e process._getActiveRequests() non sono destinate all'uso pubblico e possono essere rimosse nelle versioni future.

Utilizzare process.getActiveResourcesInfo() per ottenere un elenco dei tipi di risorse attive e non i riferimenti effettivi.

DEP0162: fs.write(), fs.writeFileSync() forzatura a stringa

[Cronologia]

VersioneModifiche
v19.0.0Fine del ciclo di vita.
v18.0.0Deprecazione in fase di esecuzione.
v17.8.0, v16.15.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

La forzatura implicita di oggetti con proprietà toString propria, passati come secondo parametro in fs.write(), fs.writeFile(), fs.appendFile(), fs.writeFileSync() e fs.appendFileSync() è deprecata. Convertirli in stringhe primitive.

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

[Cronologia]

VersioneModifiche
v18.7.0, v16.17.0Deprecazione solo nella documentazione.

Tipo: Solo nella documentazione

Questi metodi sono stati deprecati perché possono essere utilizzati in un modo che non mantiene il riferimento al canale attivo abbastanza a lungo per ricevere gli eventi.

Utilizzare diagnostics_channel.subscribe(name, onMessage) o diagnostics_channel.unsubscribe(name, onMessage) che fanno la stessa cosa.

DEP0164: process.exit(code), process.exitCode forzatura a intero

[Cronologia]

VersioneModifiche
v20.0.0Fine del ciclo di vita.
v19.0.0Deprecazione in fase di esecuzione.
v18.10.0, v16.18.0Deprecazione solo nella documentazione della forzatura a intero di process.exitCode.
v18.7.0, v16.17.0Deprecazione solo nella documentazione della forzatura a intero di process.exit(code).

Tipo: Fine del ciclo di vita

Valori diversi da undefined, null, numeri interi e stringhe intere (ad es. '1') sono deprecati come valore per il parametro code in process.exit() e come valore da assegnare a process.exitCode.

DEP0165: --trace-atomics-wait

[Cronologia]

VersioneModifiche
v23.0.0Fine del ciclo di vita.
v22.0.0Deprecazione in fase di runtime.
v18.8.0, v16.18.0Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

Il flag --trace-atomics-wait è stato rimosso perché utilizza l'hook V8 SetAtomicsWaitCallback, che verrà rimosso in una futura release di V8.

DEP0166: Doppi slash in target di importazione ed esportazione

[Cronologia]

VersioneModifiche
v19.0.0Deprecazione in fase di runtime.
v18.10.0Deprecazione solo documentale con supporto --pending-deprecation.

Tipo: Runtime

L'associazione di target di importazione ed esportazione di pacchetti a percorsi contenenti un doppio slash (di "/" o "") è deprecata e genererà un errore di convalida della risoluzione in una release futura. Questa stessa deprecazione si applica anche alle corrispondenze di pattern che iniziano o terminano con uno slash.

DEP0167: Istanze deboli di DiffieHellmanGroup (modp1, modp2, modp5)

[Cronologia]

VersioneModifiche
v18.10.0, v16.18.0Deprecazione solo documentale.

Tipo: Solo documentazione

I ben noti gruppi MODP modp1, modp2 e modp5 sono deprecati perché non sono sicuri contro attacchi pratici. Vedere la RFC 8247 Sezione 2.4 per i dettagli.

Questi gruppi potrebbero essere rimossi nelle future versioni di Node.js. Le applicazioni che si basano su questi gruppi dovrebbero valutare l'utilizzo di gruppi MODP più forti.

DEP0168: Eccezione non gestita nei callback Node-API

[Cronologia]

VersioneModifiche
v18.3.0, v16.17.0Deprecazione in fase di runtime.

Tipo: Runtime

La soppressione implicita delle eccezioni non gestite nei callback Node-API è ora deprecata.

Imposta il flag --force-node-api-uncaught-exceptions-policy per forzare Node.js a emettere un evento 'uncaughtException' se l'eccezione non viene gestita nei callback Node-API.

DEP0169: url.parse() non sicuro

[Cronologia]

VersioneModifiche
v19.9.0, v18.17.0Aggiunto il supporto per --pending-deprecation.
v19.0.0, v18.13.0Deprecazione solo documentazione.

Tipo: Solo documentazione (supporta --pending-deprecation)

Il comportamento di url.parse() non è standardizzato ed è soggetto a errori che hanno implicazioni per la sicurezza. Utilizzare invece la WHATWG URL API. Le CVE non vengono rilasciate per le vulnerabilità di url.parse().

DEP0170: Porta non valida quando si utilizza url.parse()

[Cronologia]

VersioneModifiche
v20.0.0Deprecazione runtime.
v19.2.0, v18.13.0Deprecazione solo documentazione.

Tipo: Runtime

url.parse() accetta URL con porte che non sono numeri. Questo comportamento potrebbe comportare lo spoofing del nome host con input imprevisti. Questi URL genereranno un errore nelle versioni future di Node.js, come fa già la WHATWG URL API.

DEP0171: Setter per intestazioni e trailer di http.IncomingMessage

[Cronologia]

VersioneModifiche
v19.3.0, v18.13.0Deprecazione solo documentazione.

Tipo: Solo documentazione

In una versione futura di Node.js, message.headers, message.headersDistinct, message.trailers e message.trailersDistinct saranno di sola lettura.

DEP0172: La proprietà asyncResource delle funzioni associate di AsyncResource

[Cronologia]

VersioneModifiche
v20.0.0Deprecazione runtime.

Tipo: Runtime

In una versione futura di Node.js, la proprietà asyncResource non verrà più aggiunta quando una funzione viene associata a un AsyncResource.

DEP0173: La classe assert.CallTracker

[Cronologia]

VersioneModifiche
v20.1.0Deprecazione solo documentazione.

Tipo: Solo documentazione

In una versione futura di Node.js, assert.CallTracker verrà rimossa. Considerare alternative come la funzione helper mock.

DEP0174: chiamare promisify su una funzione che restituisce una Promise

[Cronologia]

VersioneModifiche
v21.0.0Deprecazione in fase di esecuzione.
v20.8.0Deprecazione solo nella documentazione.

Tipo: Runtime

Chiamare util.promisify su una funzione che restituisce una

DEP0175: util.toUSVString

[Cronologia]

VersioneModifiche
v20.8.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione

L'API util.toUSVString() è deprecata. Si prega di utilizzare String.prototype.toWellFormed invece.

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

[Cronologia]

VersioneModifiche
v20.8.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione

I getter F_OK, R_OK, W_OK e X_OK esposti direttamente su node:fs sono deprecati. Ottenerli invece da fs.constants o fs.promises.constants.

DEP0177: util.types.isWebAssemblyCompiledModule

[Cronologia]

VersioneModifiche
v21.7.0, v20.12.0Fine vita.
v21.3.0, v20.11.0È stato assegnato un codice di deprecazione.
v14.0.0Deprecazione solo nella documentazione.

Tipo: Fine vita

L'API util.types.isWebAssemblyCompiledModule è stata rimossa. Si prega di utilizzare value instanceof WebAssembly.Module invece.

DEP0178: dirent.path

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione in fase di esecuzione.
v21.5.0, v20.12.0, v18.20.0Deprecazione solo nella documentazione.

Tipo: Runtime

dirent.path è deprecato a causa della sua mancanza di coerenza tra le release line. Si prega di utilizzare invece dirent.parentPath.

DEP0179: Costruttore Hash

[Cronologia]

VersioneModifiche
v22.0.0Deprecazione in fase di esecuzione.
v21.5.0, v20.12.0Deprecazione solo nella documentazione.

Tipo: Runtime

Chiamare direttamente la classe Hash con Hash() o new Hash() è deprecato perché si tratta di elementi interni, non destinati all'uso pubblico. Si prega di utilizzare il metodo crypto.createHash() per creare istanze di Hash.

DEP0180: Costruttore fs.Stats

[Cronologia]

VersioneModifiche
v22.0.0Deprecazione in fase di esecuzione.
v20.13.0Deprecazione solo nella documentazione.

Tipo: Runtime

Chiamare direttamente la classe fs.Stats con Stats() o new Stats() è deprecato perché sono elementi interni e non destinati all'uso pubblico.

DEP0181: Costruttore Hmac

[Cronologia]

VersioneModifiche
v22.0.0Deprecazione in fase di esecuzione.
v20.13.0Deprecazione solo nella documentazione.

Tipo: Runtime

Chiamare direttamente la classe Hmac con Hmac() o new Hmac() è deprecato perché sono elementi interni e non destinati all'uso pubblico. Si prega di utilizzare il metodo crypto.createHmac() per creare istanze Hmac.

DEP0182: Tag di autenticazione GCM brevi senza authTagLength esplicito

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione in fase di esecuzione.
v20.13.0Deprecazione solo nella documentazione.

Tipo: Runtime

Le applicazioni che intendono utilizzare tag di autenticazione più corti della lunghezza predefinita del tag di autenticazione devono impostare l'opzione authTagLength della funzione crypto.createDecipheriv() sulla lunghezza appropriata.

Per le cifrature in modalità GCM, la funzione decipher.setAuthTag() accetta tag di autenticazione di qualsiasi lunghezza valida (vedere DEP0090). Questo comportamento è deprecato per allinearsi meglio alle raccomandazioni per NIST SP 800-38D.

DEP0183: API basate sul motore OpenSSL

[Cronologia]

VersioneModifiche
v22.4.0, v20.16.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione

OpenSSL 3 ha deprecato il supporto per i motori personalizzati con una raccomandazione di passare al suo nuovo modello di provider. L'opzione clientCertEngine per https.request(), tls.createSecureContext() e tls.createServer(); il privateKeyEngine e privateKeyIdentifier per tls.createSecureContext(); e crypto.setEngine() dipendono tutti da questa funzionalità di OpenSSL.

DEP0184: Creazione di istanze delle classi node:zlib senza new

[Cronologia]

VersioneModifiche
v22.9.0, v20.18.0Deprecazione solo documentale.

Tipo: Solo documentale

La creazione di istanze di classi senza il qualificatore new esportato dal modulo node:zlib è deprecata. Si consiglia di utilizzare invece il qualificatore new. Questo vale per tutte le classi Zlib, come Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip e Zlib.

DEP0185: Creazione di istanze delle classi node:repl senza new

[Cronologia]

VersioneModifiche
v22.9.0, v20.18.0Deprecazione solo documentale.

Tipo: Solo documentale

La creazione di istanze di classi senza il qualificatore new esportato dal modulo node:repl è deprecata. Si consiglia di utilizzare invece il qualificatore new. Questo vale per tutte le classi REPL, incluse REPLServer e Recoverable.

DEP0187: Passaggio di tipi di argomento non validi a fs.existsSync

[Cronologia]

VersioneModifiche
v23.4.0Solo documentale.

Tipo: Solo documentale

Il passaggio di tipi di argomento non supportati è deprecato e, invece di restituire false, genererà un errore in una versione futura.

DEP0188: process.features.ipv6 e process.features.uv

[Cronologia]

VersioneModifiche
v23.4.0Deprecazione solo documentale.

Tipo: Solo documentale

Queste proprietà sono incondizionatamente true. Qualsiasi controllo basato su queste proprietà è ridondante.

DEP0189: process.features.tls_*

[Cronologia]

VersioneModifiche
v23.4.0Deprecazione solo documentale.

Tipo: Solo documentale

process.features.tls_alpn, process.features.tls_ocsp e process.features.tls_sni sono deprecati, poiché i loro valori sono garantiti essere identici a quelli di process.features.tls.