Skip to content

API Deprecate

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

  • L'uso dell'API non è sicuro.
  • È disponibile un'API alternativa migliorata.
  • Sono previste modifiche di rilievo all'API in una futura versione 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 delle 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 tale flag sono esplicitamente etichettate come tali nell'elenco delle API deprecate.

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

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

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

Revoca delle deprecazioni

Occasionalmente, la deprecazione di un'API potrebbe essere revocata. 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]

VersioneCambiamenti
v8.0.0Fine vita.
v6.12.0È stato assegnato un codice di deprecazione.
v5.0.0Deprecazione in fase di runtime.

Tipo: Fine vita

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

DEP0003: _writableState.buffer

[Cronologia]

VersioneCambiamenti
v14.0.0Fine vita.
v6.12.0, v4.8.6È stato assegnato un codice di deprecazione.
v0.11.15Deprecazione in fase di runtime.

Tipo: Fine vita

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

DEP0004: CryptoStream.prototype.readyState

[Cronologia]

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

Tipo: Fine vita

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

DEP0005: Costruttore Buffer()

[Cronologia]

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

Tipo: Applicazione (solo codice non 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 in node_modules. Ciò significa che non ci saranno avvisi di deprecazione per l'utilizzo di Buffer() nelle dipendenze. Con --pending-deprecation, si genera un avviso di runtime indipendentemente da dove si verifica l'utilizzo di Buffer().

DEP0006: child_process options.customFds

[Storia]

VersioneModifiche
v12.0.0Fine del ciclo di vita.
v6.12.0, v4.8.6Assegnato un codice di deprecazione.
v0.11.14Deprecazione a runtime.
v0.5.10Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

Nei metodi spawn(), fork() e exec() del modulo child_process, l'opzione options.customFds è deprecata. In alternativa, si dovrebbe usare l'opzione options.stdio.

DEP0007: Sostituisci cluster worker.suicide con worker.exitedAfterDisconnect

[Storia]

VersioneModifiche
v9.0.0Fine del ciclo di vita.
v7.0.0Deprecazione a runtime.
v6.12.0Assegnato un codice di deprecazione.
v6.0.0Deprecazione solo documentale.

Tipo: Fine del ciclo di vita

In una versione precedente di cluster di Node.js, una proprietà booleana con il nome suicide è stata aggiunta all'oggetto Worker. Lo scopo di questa proprietà era di fornire un'indicazione di come e perché l'istanza di 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 con precisione la semantica effettiva ed era inutilmente carico di emotività.

DEP0008: require('node:constants')

[Storia]

VersioneModifiche
v6.12.0Assegnato un codice di deprecazione.
v6.3.0Deprecazione solo documentale.

Tipo: Solo documentale

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

DEP0009: crypto.pbkdf2 senza digest

[Storia]

VersioneModifiche
v14.0.0Fine del ciclo di vita (per digest === null).
v11.0.0Deprecazione a runtime (per digest === null).
v8.0.0Fine del ciclo di vita (per digest === undefined).
v6.12.0Assegnato un codice di deprecazione.
v6.0.0Deprecazione a runtime (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 predefinito utilizzava 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, la chiamata di queste funzioni con digest impostato su null stamperà 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]

VersioneCambiamenti
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. Utilizzare invece tls.createSecureContext().

DEP0011: crypto.Credentials

[Cronologia]

VersioneCambiamenti
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. Utilizzare invece tls.SecureContext.

DEP0012: Domain.dispose

[Cronologia]

VersioneCambiamenti
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. Riprendersi dalle azioni I/O non riuscite esplicitamente tramite i gestori di eventi di errore impostati sul dominio.

DEP0013: funzione asincrona fs senza callback

[Cronologia]

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

Tipo: Fine del ciclo di vita

La chiamata di una funzione asincrona senza una callback restituisce un TypeError in Node.js 10.0.0 e versioni successive. Vedere https://github.com/nodejs/node/pull/12562.

DEP0014: interfaccia String legacy di fs.read

[Cronologia]

VersioneCambiamenti
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 documentale.

Tipo: Fine del ciclo di vita

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

DEP0015: interfaccia String legacy di fs.readSync

[Cronologia]

VersioneCambiamenti
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 documentale.

Tipo: Fine del ciclo di vita

L'interfaccia String legacy di 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 esecuzione.

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 esecuzione.

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 esecuzione.

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 gestisce 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 esecuzione.

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 esecuzione.

Tipo: Fine del ciclo di vita

La proprietà Server.connections è stata deprecata in Node.js v0.9.7 ed è stata rimossa. Si prega di utilizzare il metodo Server.getConnections() in alternativa.

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 esecuzione.

Tipo: Fine del ciclo di vita

Il metodo Server.listenFD() è stato deprecato e rimosso. Si prega di utilizzare Server.listen({fd: \<numero\>}) in alternativa.

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. Si prega di 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. Si prega di 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. Si prega di 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. Si prega di 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. Si prega di 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. Si prega di 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 in fase di 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 della documentazione.

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 della documentazione.

Tipo: Solo documentazione

Il metodo ecdh.setPublicKey() è ora deprecato in quanto 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 della documentazione.

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 della documentazione.

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 della documentazione.

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 poiché 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 poiché 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 runtime.
v16.6.0Aggiunto il supporto per --pending-deprecation.
v7.0.0Deprecazione solo documentale.

Tipo: Runtime

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

DEP0041: variabile d'ambiente NODE_REPL_HISTORY_FILE

[Cronologia]

VersioneCambiamenti
v10.0.0Fine vita.
v6.12.0, v4.8.6Assegnato un codice di deprecazione.
v3.0.0Deprecazione solo nella documentazione.

Tipo: Fine vita

La variabile d'ambiente NODE_REPL_HISTORY_FILE è stata rimossa. Si prega di utilizzare NODE_REPL_HISTORY al suo posto.

DEP0042: tls.CryptoStream

[Cronologia]

VersioneCambiamenti
v10.0.0Fine vita.
v6.12.0, v4.8.6Assegnato un codice di deprecazione.
v0.11.3Deprecazione solo nella documentazione.

Tipo: Fine vita

La classe tls.CryptoStream è stata rimossa. Si prega di utilizzare tls.TLSSocket al suo posto.

DEP0043: tls.SecurePair

[Cronologia]

VersioneCambiamenti
v8.0.0Deprecazione in fase di esecuzione.
v6.12.0Assegnato un codice di deprecazione.
v6.0.0Deprecazione solo nella documentazione.
v0.11.15Deprecazione revocata.
v0.11.3Deprecazione in fase di esecuzione.

Tipo: Solo documentazione

La classe tls.SecurePair è deprecata. Si prega di utilizzare tls.TLSSocket al suo posto.

DEP0044: util.isArray()

[Cronologia]

VersioneCambiamenti
v22.0.0Deprecazione in fase di esecuzione.
v6.12.0, v4.8.6Assegnato un codice di deprecazione.
v4.0.0, v3.3.1Deprecazione solo nella documentazione.

Tipo: Esecuzione

L'API util.isArray() è deprecata. Si prega di utilizzare Array.isArray() al suo posto.

DEP0045: util.isBoolean()

[Cronologia]

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

Tipo: Fine vita

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

DEP0046: util.isBuffer()

[Cronologia]

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

Tipo: Fine vita

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

DEP0047: util.isDate()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione a fine ciclo di 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 documentale.

Tipo: Fine ciclo di vita

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

DEP0048: util.isError()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione a fine ciclo di 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 documentale.

Tipo: Fine ciclo di vita

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

DEP0049: util.isFunction()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione a fine ciclo di 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 documentale.

Tipo: Fine ciclo di vita

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

DEP0050: util.isNull()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione a fine ciclo di 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 documentale.

Tipo: Fine ciclo di vita

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

DEP0051: util.isNullOrUndefined()

[Cronologia]

VersioneModifiche
v23.0.0Deprecazione a fine ciclo di 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 documentale.

Tipo: Fine ciclo di vita

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

DEP0052: util.isNumber()

[Cronologia]

VersioneCambiamenti
v23.0.0Deprecazione di fine 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 documentale.

Tipo: Fine vita

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

DEP0053: util.isObject()

[Cronologia]

VersioneCambiamenti
v23.0.0Deprecazione di fine 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 documentale.

Tipo: Fine vita

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

DEP0054: util.isPrimitive()

[Cronologia]

VersioneCambiamenti
v23.0.0Deprecazione di fine 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 documentale.

Tipo: Fine vita

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

DEP0055: util.isRegExp()

[Cronologia]

VersioneCambiamenti
v23.0.0Deprecazione di fine 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 documentale.

Tipo: Fine vita

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

DEP0056: util.isString()

[Cronologia]

VersioneCambiamenti
v23.0.0Deprecazione di fine 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 documentale.

Tipo: Fine vita

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 documentale.

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 documentale.

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 documentale.

Tipo: Fine vita

L'API util.log() è stata rimossa perché si tratta di un'API legacy non mantenuta che è stata esposta per errore all'utente. Invece, si considerino le seguenti alternative in base alle proprie esigenze specifiche:

  • Librerie di logging di terze parti
  • Utilizzare console.log(new Date().toLocaleString(), message)

Adottando una di queste alternative, è possibile passare 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 documentale.

Tipo: Runtime

L'API util._extend() è obsoleta perché si tratta di un'API legacy non mantenuta che è stata esposta per errore all'utente. 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 runtime.
v7.0.0Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

La classe fs.SyncWriteStream non è mai stata intesa come un'API accessibile pubblicamente ed è stata rimossa. Non è disponibile alcuna API alternativa. Si prega di utilizzare un'alternativa userland.

DEP0062: node --debug

[Cronologia]

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

Tipo: Fine del ciclo di vita

--debug attiva l'interfaccia di debug legacy di V8, che è stata rimossa a partire da V8 5.8. È sostituita da Inspector che viene attivato con --inspect invece.

DEP0063: ServerResponse.prototype.writeHeader()

[Cronologia]

VersioneModifiche
v8.0.0Deprecazione solo nella documentazione.

Tipo: Solo documentazione

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

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

DEP0064: tls.createSecurePair()

[Cronologia]

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

Tipo: Runtime

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

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 sin da Node.js 6.0.0, quando è stato importato V8 5.0. Si prega di utilizzare REPL_MODE_SLOPPY invece.

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

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

[Cronologia]

VersioneModifiche
v12.0.0Deprecazione in fase di runtime.
v8.0.0Deprecazione solo documentale.

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 le intestazioni 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 documentale.

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 in fase di runtime.

Tipo: Fine 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 vita.
v9.0.0Deprecazione in fase di runtime.
v8.0.0Deprecazione solo documentale.

Tipo: Fine 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 vita.
v8.2.0Deprecazione in fase di runtime.

Tipo: Fine vita

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

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

DEP0071: async_hooks.triggerId()

[Cronologia]

VersioneCambiamenti
v9.0.0Fine vita.
v8.2.0Deprecazione a runtime.

Tipo: Fine 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]

VersioneCambiamenti
v9.0.0Fine vita.
v8.2.0Deprecazione a runtime.

Tipo: Fine 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]

VersioneCambiamenti
v10.0.0Fine vita.
v9.0.0Deprecazione a runtime.

Tipo: Fine vita

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

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

DEP0074: REPLServer.bufferedCommand

[Cronologia]

VersioneCambiamenti
v15.0.0Fine vita.
v9.0.0Deprecazione a runtime.

Tipo: Fine vita

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

DEP0075: REPLServer.parseREPLKeyword()

[Cronologia]

VersioneCambiamenti
v15.0.0Fine vita.
v9.0.0Deprecazione a runtime.

Tipo: Fine vita

REPLServer.parseREPLKeyword() è stato rimosso dalla visibilità userland.

DEP0076: tls.parseCertString()

[Cronologia]

VersioneCambiamenti
v18.0.0Fine vita.
v9.0.0Deprecazione a runtime.
v8.6.0Deprecazione solo documentale.

Tipo: Fine vita

tls.parseCertString() era un helper di parsing 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 Relative Distinguished Names multivalore.

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

DEP0077: Module._debug()

[Cronologia]

VersioneModifiche
v9.0.0Deprecazione in fase di runtime.

Tipo: Runtime

Module._debug() è deprecato.

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

DEP0078: REPLServer.turnOffEditorMode()

[Cronologia]

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

Tipo: Fine del ciclo di vita

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

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

[Cronologia]

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

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() è deprecato. Utilizzare invece util.inspect.custom. Per la compatibilità con le versioni di Node.js precedenti alla 6.4.0, è possibile specificare entrambe le opzioni.

DEP0080: path._makeLong()

[Cronologia]

VersioneModifiche
v9.0.0Deprecazione solo documentale.

Tipo: Solo documentale

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

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

[Cronologia]

VersioneModifiche
v9.0.0Deprecazione in fase di runtime.

Tipo: Runtime

L'uso di fs.truncate() fs.truncateSync() con un descrittore di file è deprecato. 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 fase di runtime.

Tipo: Fine del ciclo di vita

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

DEP0083: Disabilitazione di ECDH impostando ecdhCurve su false

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v9.2.0Deprecazione a 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 della 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 a runtime.

Tipo: Fine del ciclo di vita

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

I moduli v8/* non hanno esportazioni e, se non importati in un ordine specifico, genererebbero effettivamente degli 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, poiché è pubblicato sul registro npm con lo stesso nome. Non è necessaria alcuna modifica al codice sorgente se questo viene fatto.

DEP0085: API sensibile AsyncHooks

[Cronologia]

VersioneModifiche
v10.0.0Fine del ciclo di vita.
v9.4.0, v8.10.0Deprecazione a 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: Rimozione di runInAsyncIdScope

[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

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 documentale.

Tipo: Deprecazione revocata

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

DEP0090: Lunghezze non valide del tag di autenticazione GCM

[Cronologia]

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

Tipo: Fine del ciclo di vita

Node.js supportava tutte le lunghezze del tag di autenticazione GCM accettate da OpenSSL quando si chiamava decipher.setAuthTag(). A partire da Node.js v11.0.0, sono ammesse solo lunghezze del 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 in fase di runtime.

Tipo: Fine del ciclo di vita

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

DEP0092: this di livello superiore associato a module.exports

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione solo documentale.

Tipo: Solo documentale

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 è deprecato e sostituito

[Cronologia]

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

Tipo: Runtime

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

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

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione runtime.

Tipo: Runtime

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

DEP0095: timers.enroll()

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione runtime.

Tipo: Runtime

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

DEP0096: timers.unenroll()

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione runtime.

Tipo: Runtime

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

DEP0097: MakeCallback con proprietà domain

[Cronologia]

VersioneModifiche
v10.0.0Deprecazione 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, o la classe di alto livello AsyncResource.

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

[Cronologia]

VersioneModifiche
v12.0.0Fine del supporto.
v10.0.0, v9.6.0, v8.12.0Deprecazione runtime.

Tipo: Fine del supporto

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

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

DEP0099: API C++ node::MakeCallback non a conoscenza 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 i componenti aggiuntivi nativi sono deprecate. 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 runtime.
v0.3.7Deprecazione solo nella documentazione.

Tipo: Fine del ciclo di vita

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

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 arresti anomali difficili da trovare.

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

[Cronologia]

VersioneModifiche
v10.9.0Sostituito 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 del tipo in particolare possono essere sostituiti utilizzando util.types.

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

DEP0104: Coercizione di stringhe 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 generato. 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 in fase di 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 in fase di runtime.
v10.0.0Deprecazione solo documentazione.

Tipo: Fine del ciclo di vita

crypto.createCipher() e crypto.createDecipher() sono stati rimossi in quanto 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 in fase di runtime.

Tipo: Fine del ciclo di vita

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

DEP0108: zlib.bytesRead

[Cronologia]

VersioneModifiche
v23.0.0Fine del ciclo di vita.
v11.0.0Deprecazione in fase di runtime.
v10.0.0Deprecazione solo documentazione.

Tipo: Fine del ciclo di vita

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

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

[Cronologia]

VersioneCambiamenti
v16.0.0Fine del ciclo di vita.
v11.0.0Deprecazione in fase di runtime.

Tipo: Fine del ciclo di vita

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

DEP0110: dati memorizzati nella cache vm.Script

[Cronologia]

VersioneCambiamenti
v10.6.0Deprecazione solo documentazione.

Tipo: Solo documentazione

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

DEP0111: process.binding()

[Cronologia]

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

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

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

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

DEP0112: API private dgram

[Cronologia]

VersioneCambiamenti
v11.0.0Deprecazione in fase di runtime.

Tipo: Runtime

Il modulo node:dgram in precedenza conteneva diverse API che non erano mai destinate ad essere accessibili 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]

VersioneCambiamenti
v12.0.0Fine vita.
v11.0.0Deprecazione a runtime.

Tipo: Fine vita

Cipher.setAuthTag() e Decipher.getAuthTag() non sono più disponibili. Non sono mai stati documentati e avrebbero generato un'eccezione se chiamati.

DEP0114: crypto._toBuf()

[Cronologia]

VersioneCambiamenti
v12.0.0Fine vita.
v11.0.0Deprecazione a runtime.

Tipo: Fine vita

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

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

[Cronologia]

VersioneCambiamenti
v11.0.0Aggiunta deprecazione solo di documentazione con supporto --pending-deprecation.

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

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

DEP0116: API URL Legacy

[Cronologia]

VersioneCambiamenti
v19.0.0, v18.13.0url.parse() è nuovamente deprecata in DEP0169.
v15.13.0, v14.17.0Deprecazione revocata. Stato cambiato in "Legacy".
v11.0.0Deprecazione solo documentazione.

Tipo: Deprecazione revocata

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

DEP0117: Gestori crittografici nativi

[Cronologia]

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

Tipo: Fine del ciclo di vita

Le versioni precedenti di Node.js esponevano gestori 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é un uso improprio dell'oggetto nativo può causare l'arresto anomalo dell'applicazione.

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

[Cronologia]

VersioneModifiche
v11.0.0Deprecazione in fase di esecuzione.

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 ritiene che non venga utilizzato in applicazioni reali. Diventerà un errore nelle versioni future di Node.js.

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

[Cronologia]

VersioneModifiche
v11.0.0Deprecazione solo per la documentazione.

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

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

DEP0120: Supporto dei contatori delle prestazioni di Windows

[Cronologia]

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

Tipo: Fine del ciclo di vita

Il supporto dei 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 in fase di esecuzione.

Tipo: Runtime

La funzione non documentata net._setSimultaneousAccepts() era originariamente destinata al debug e all'ottimizzazione delle prestazioni quando si utilizzano 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()

[Storia]

VersioneCambiamenti
v12.0.0Deprecazione in fase di esecuzione.

Tipo: Esecuzione

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

DEP0123: impostazione del TLS ServerName a un indirizzo IP

[Storia]

VersioneCambiamenti
v12.0.0Deprecazione in fase di esecuzione.

Tipo: Esecuzione

L'impostazione del TLS ServerName a un indirizzo IP non è consentita da RFC 6066. Questa impostazione verrà ignorata in una versione futura.

DEP0124: utilizzo di REPLServer.rli

[Storia]

VersioneCambiamenti
v15.0.0Fine del ciclo di vita.
v12.0.0Deprecazione in fase di esecuzione.

Tipo: Fine del ciclo di vita

Questa proprietà è un riferimento all'istanza stessa.

DEP0125: require('node:_stream_wrap')

[Storia]

VersioneCambiamenti
v12.0.0Deprecazione in fase di esecuzione.

Tipo: Esecuzione

Il modulo node:_stream_wrap è deprecato.

DEP0126: timers.active()

[Storia]

VersioneCambiamenti
v11.14.0Deprecazione in fase di esecuzione.

Tipo: Esecuzione

La funzione timers.active(), precedentemente non documentata, è deprecata. Si prega di utilizzare invece la funzione timeout.refresh(), documentata pubblicamente. Se è necessario fare di nuovo riferimento al timeout, è possibile utilizzare timeout.ref() senza impatto sulle prestazioni a partire da Node.js 10.

DEP0127: timers._unrefActive()

[Storia]

VersioneCambiamenti
v11.14.0Deprecazione in fase di esecuzione.

Tipo: Esecuzione

La funzione timers._unrefActive(), precedentemente non documentata e "privata", è deprecata. Si prega di utilizzare invece la funzione timeout.refresh(), documentata pubblicamente. Se è necessario annullare il riferimento al timeout, è possibile utilizzare timeout.unref() senza impatto sulle prestazioni a partire da Node.js 10.

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

[Storia]

VersioneCambiamenti
v16.0.0Deprecazione in fase di esecuzione.
v12.0.0Solo documentazione.

Tipo: Esecuzione

I moduli che hanno una voce main non valida (ad esempio, ./does-not-exist.js) e hanno anche un file index.js nella directory di primo livello risolveranno il file index.js. Questa operazione è deprecata e genererà un errore nelle versioni future di Node.js.

DEP0129: ChildProcess._channel

[Storia]

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

Tipo: Runtime

La proprietà _channel degli oggetti processo figlio restituiti da spawn() e funzioni simili non è pensata per un utilizzo pubblico. Utilizzare invece ChildProcess.channel.

DEP0130: Module.createRequireFromPath()

[Storia]

VersioneModifiche
v16.0.0Fine vita.
v13.0.0Deprecazione in fase di runtime.
v12.2.0Solo documentazione.

Tipo: Fine vita

Utilizzare invece module.createRequire().

DEP0131: Parser HTTP legacy

[Storia]

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

Tipo: Fine 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

[Storia]

VersioneModifiche
v12.5.0Deprecazione in fase di runtime.

Tipo: Runtime

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

DEP0133: http connection

[Storia]

VersioneModifiche
v12.12.0Deprecazione solo documentazione.

Tipo: Solo documentazione

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

DEP0134: process._tickCallback

[Storia]

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 in fase di runtime.

Tipo: Runtime

WriteStream.open() e ReadStream.open() sono API interne non documentate che non hanno senso da usare nel userland. I flussi di file dovrebbero essere sempre aperti tramite i loro metodi factory corrispondenti 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 di documentazione.

Tipo: Solo documentazione

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

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

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

DEP0137: Chiusura di fs.FileHandle durante la garbage collection

[Cronologia]

VersioneModifiche
v14.0.0Deprecazione in fase di runtime.

Tipo: Runtime

Consentire a un oggetto fs.FileHandle di essere chiuso durante la garbage collection è deprecato. In futuro, farlo potrebbe comportare un errore generato che terminerà il processo.

Assicurati che tutti gli oggetti fs.FileHandle siano chiusi esplicitamente usando 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 documentale.

Tipo: Solo documentale

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 ambiente CommonJS.

DEP0139: process.umask() senza argomenti

[Cronologia]

VersioneModifiche
v14.0.0, v12.19.0Deprecazione solo documentale.

Tipo: Solo documentale

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

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

[Cronologia]

VersioneModifiche
v14.1.0, v13.14.0Deprecazione solo documentale.

Tipo: Solo documentale

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

DEP0141: repl.inputStream e repl.outputStream

[Cronologia]

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

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

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

DEP0142: repl._builtinLibs

[Cronologia]

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

Tipo: Solo documentale

Il modulo node:repl esporta una proprietà _builtinLibs che contiene un array di moduli incorporati. Finora era incompleta ed è 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ù necessario 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 utilizzando module.parent. Questa funzionalità è deprecata perché non funziona in modo coerente in presenza di moduli ECMAScript e perché fornisce una rappresentazione imprecisa del grafo 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 costruttore crypto.Certificate() è deprecato. Utilizzare invece 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.

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

DEP0148: Mappatura delle cartelle in "exports" ( "/" finale)

[Cronologia]

VersioneModifiche
v17.0.0Fine del ciclo di vita.
v16.0.0Deprecazione a runtime.
v15.1.0Deprecazione a runtime per importazioni autoreferenziali.
v14.13.0Deprecazione solo nella documentazione.

Tipo: Runtime

L'utilizzo di "/" finale per definire mappature di sottocartelle nei campi esportazioni di sottocartelle o importazioni di sottocartelle è deprecato. Utilizzare invece i pattern di sottocartelle.

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 a runtime.

Tipo: Fine del ciclo di vita

La proprietà process.config fornisce l'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 futura versione di Node.js.

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

[Cronologia]

VersioneModifiche
v16.0.0Deprecazione a runtime.
v15.8.0, v14.18.0Deprecazione solo nella documentazione con supporto --pending-deprecation.

Tipo: Runtime

In precedenza, le ricerche di index.js e dell'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 un'esplicita voce "exports" o "main" con l'esatta estensione del file.

DEP0152: Proprietà Extension PerformanceEntry

[Cronologia]

VersioneModifiche
v16.0.0Deprecazione a runtime.

Tipo: Runtime

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

DEP0153: dns.lookup e dnsPromises.lookup coercizione del tipo di opzioni

[Cronologia]

VersioneModifiche
v18.0.0Fine del ciclo di vita.
v17.0.0Deprecazione runtime.
v16.8.0Deprecazione solo della documentazione.

Tipo: Fine del ciclo di vita

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

DEP0154: Opzioni per la generazione di coppie di chiavi RSA-PSS

[Cronologia]

VersioneModifiche
v20.0.0Deprecazione runtime.
v16.10.0Deprecazione solo della documentazione.

Tipo: Runtime

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

DEP0155: Barre finali nelle risoluzioni degli specificatori di pattern

[Cronologia]

VersioneModifiche
v17.0.0Deprecazione runtime.
v16.10.0Deprecazione solo della documentazione con supporto --pending-deprecation.

Tipo: Runtime

La rimappatura degli specificatori che terminano con "/" come import 'pkg/x/' è deprecata 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 della documentazione.

Tipo: Solo documentazione

Spostare all'API <Stream>, 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 lo Stream .destroy([error]), quindi controllare la proprietà .destroyed e l'evento 'close' dovrebbero avere lo stesso effetto. L'estremità ricevente dovrebbe anche controllare il valore readable.readableEnded su http.IncomingMessage per ottenere se si trattava di un'interruzione o di un'interruzione 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 il supporto ai thenable nei metodi di implementazione. Questa funzionalità è ora deprecata, utilizzare invece le callback ed evitare l'uso di funzioni asincrone per i metodi di implementazione degli stream.

Questa funzionalità ha causato problemi imprevisti agli utenti che implementavano la funzione in stile callback ma utilizzavano ad esempio un metodo asincrono che avrebbe causato un errore poiché la combinazione di semantica promise e 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 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 poiché aggiungeva maggiore 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 promise di 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 future release.

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

DEP0162: fs.write(), fs.writeFileSync() conversione forzata 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 documentale.

Tipo: Fine del ciclo di vita

La conversione implicita di oggetti con proprietà toString personale, 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 documentale.

Tipo: Solo documentale

Questi metodi sono stati deprecati perché possono essere usati 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 conversione forzata 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 documentale della conversione forzata a intero di process.exitCode.
v18.7.0, v16.17.0Deprecazione solo documentale della conversione forzata a intero di process.exit(code).

Tipo: Fine del ciclo di vita

Valori diversi da undefined, null, numeri interi e stringhe di numeri interi (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]

VersioneCambiamenti
v23.0.0Fine del ciclo di vita.
v22.0.0Deprecazione a 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 nei target di importazioni ed esportazioni

[Cronologia]

VersioneCambiamenti
v19.0.0Deprecazione a runtime.
v18.10.0Deprecazione solo documentale con supporto --pending-deprecation.

Tipo: Runtime

Le importazioni di pacchetti e i target di esportazioni che mappano in percorsi includendo un doppio slash (di "/" o "") sono deprecati e falliranno con un errore di validazione della risoluzione in una futura release. 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]

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

Tipo: Solo documentale

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

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

DEP0168: Eccezione non gestita nei callback Node-API

[Cronologia]

VersioneCambiamenti
v18.3.0, v16.17.0Deprecazione a runtime.

Tipo: Runtime

La soppressione implicita di eccezioni non catturate 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 documentale.

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

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

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

[Cronologia]

VersioneModifiche
v20.0.0Deprecazione in fase di esecuzione.
v19.2.0, v18.13.0Deprecazione solo documentale.

Tipo: Runtime

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

DEP0171: Setter per intestazioni e trailer http.IncomingMessage

[Cronologia]

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

Tipo: Solo documentale

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

DEP0172: La proprietà asyncResource delle funzioni associate AsyncResource

[Cronologia]

VersioneModifiche
v20.0.0Deprecazione in fase di esecuzione.

Tipo: Runtime

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

DEP0173: La classe assert.CallTracker

[Cronologia]

VersioneModifiche
v20.1.0Deprecazione solo documentale.

Tipo: Solo documentale

In una futura versione di Node.js, assert.CallTracker verrà rimossa. Si consiglia di utilizzare 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 documentale.

Tipo: Fase di esecuzione

Chiamare util.promisify su una funzione che restituisce una

DEP0175: util.toUSVString

[Cronologia]

VersioneModifiche
v20.8.0Deprecazione solo documentale.

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 documentale.

Tipo: Solo documentazione

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

DEP0177: util.types.isWebAssemblyCompiledModule

[Cronologia]

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

Tipo: Fine del ciclo di 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 documentale.

Tipo: Fase di esecuzione

Il dirent.path è deprecato a causa della sua mancanza di coerenza tra le linee di rilascio. Si prega di utilizzare dirent.parentPath invece.

DEP0179: Costruttore Hash

[Cronologia]

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

Tipo: Fase di esecuzione

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

DEP0180: Costruttore fs.Stats

[Cronologia]

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

Tipo: Runtime

La chiamata diretta alla classe fs.Stats con Stats() o new Stats() è deprecata in quanto interna e non destinata all'uso pubblico.

DEP0181: Costruttore Hmac

[Cronologia]

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

Tipo: Runtime

La chiamata diretta alla classe Hmac con Hmac() o new Hmac() è deprecata in quanto interna e non destinata 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ù brevi della lunghezza predefinita del tag di autenticazione devono impostare l'opzione authTagLength della funzione crypto.createDecipheriv() alla lunghezza appropriata.

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

DEP0183: API basate su engine 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 la raccomandazione di passare al suo nuovo modello di provider. L'opzione clientCertEngine per https.request(), tls.createSecureContext() e tls.createServer(); privateKeyEngine e privateKeyIdentifier per tls.createSecureContext(); e crypto.setEngine() dipendono tutti da questa funzionalità di OpenSSL.

DEP0184: Istanziare le classi node:zlib senza new

[Cronologia]

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

Tipo: Solo documentale

L'istanziazione delle classi senza il qualificatore new esportato dal modulo node:zlib è deprecata. Si consiglia di utilizzare invece il qualificatore new. Ciò si applica a tutte le classi Zlib, come Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip e Zlib.

DEP0185: Istanziare le classi node:repl senza new

[Cronologia]

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

Tipo: Solo documentale

L'istanziazione delle classi senza il qualificatore new esportato dal modulo node:repl è deprecata. Si consiglia di utilizzare invece il qualificatore new. Ciò si applica a tutte le classi REPL, incluse REPLServer e Recoverable.

DEP0187: Passare tipi di argomenti non validi a fs.existsSync

[Cronologia]

VersioneModifiche
v23.4.0Solo documentale.

Tipo: Solo documentale

Il passaggio di tipi di argomenti 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 deprecate, poiché i loro valori sono garantiti per essere identici a quello di process.features.tls.