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]
Versione | Modifiche |
---|---|
v14.0.0 | Fine vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v1.6.0 | Deprecazione runtime. |
Tipo: Fine vita
OutgoingMessage.prototype.flush()
è stato rimosso. Utilizzare invece OutgoingMessage.prototype.flushHeaders()
.
DEP0002: require('_linklist')
[Cronologia]
Versione | Cambiamenti |
---|---|
v8.0.0 | Fine vita. |
v6.12.0 | È stato assegnato un codice di deprecazione. |
v5.0.0 | Deprecazione in fase di runtime. |
Tipo: Fine vita
Il modulo _linklist
è deprecato. Si prega di utilizzare un'alternativa userland.
DEP0003: _writableState.buffer
[Cronologia]
Versione | Cambiamenti |
---|---|
v14.0.0 | Fine vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.15 | Deprecazione in fase di runtime. |
Tipo: Fine vita
_writableState.buffer
è stato rimosso. Utilizzare invece _writableState.getBuffer()
.
DEP0004: CryptoStream.prototype.readyState
[Cronologia]
Versione | Cambiamenti |
---|---|
v10.0.0 | Fine vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.4.0 | Deprecazione solo documentale. |
Tipo: Fine vita
La proprietà CryptoStream.prototype.readyState
è stata rimossa.
DEP0005: Costruttore Buffer()
[Cronologia]
Versione | Cambiamenti |
---|---|
v10.0.0 | Deprecazione in fase di runtime. |
v6.12.0 | È stato assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione 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
:
Buffer.alloc(size[, fill[, encoding]])
: Crea unBuffer
con memoria inizializzata.Buffer.allocUnsafe(size)
: Crea unBuffer
con memoria non inizializzata.Buffer.allocUnsafeSlow(size)
: Crea unBuffer
con memoria non inizializzata.Buffer.from(array)
: Crea unBuffer
con una copia diarray
.Buffer.from(arrayBuffer[, byteOffset[, length]])
- Crea unBuffer
che avvolge l'arrayBuffer
dato.Buffer.from(buffer)
: Crea unBuffer
che copiabuffer
.Buffer.from(string[, encoding])
: Crea unBuffer
che copiastring
.
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]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | Assegnato un codice di deprecazione. |
v0.11.14 | Deprecazione a runtime. |
v0.5.10 | Deprecazione 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]
Versione | Modifiche |
---|---|
v9.0.0 | Fine del ciclo di vita. |
v7.0.0 | Deprecazione a runtime. |
v6.12.0 | Assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v6.12.0 | Assegnato un codice di deprecazione. |
v6.3.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v14.0.0 | Fine del ciclo di vita (per digest === null ). |
v11.0.0 | Deprecazione a runtime (per digest === null ). |
v8.0.0 | Fine del ciclo di vita (per digest === undefined ). |
v6.12.0 | Assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v11.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.13 | Deprecazione in fase di esecuzione. |
Tipo: Fine del ciclo di vita
L'API crypto.createCredentials()
è stata rimossa. Utilizzare invece tls.createSecureContext()
.
DEP0011: crypto.Credentials
[Cronologia]
Versione | Cambiamenti |
---|---|
v11.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.13 | Deprecazione in fase di esecuzione. |
Tipo: Fine del ciclo di vita
La classe crypto.Credentials
è stata rimossa. Utilizzare invece tls.SecureContext
.
DEP0012: Domain.dispose
[Cronologia]
Versione | Cambiamenti |
---|---|
v9.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.7 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v10.0.0 | Fine del ciclo di vita. |
v7.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v8.0.0 | Fine del ciclo di vita. |
v6.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.1.96 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v8.0.0 | Fine del ciclo di vita. |
v6.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.1.96 | Deprecazione 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]
Versione | Modifiche |
---|---|
v14.0.0 | Fine del ciclo di vita. |
v6.12.0 | È stato assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v9.0.0 | Fine del ciclo di vita. |
v7.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v15.0.0 | Fine del ciclo di vita. |
v7.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Funzionalità rimossa. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v1.8.1 | Deprecazione 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]
Versione | Modifiche |
---|---|
v15.0.0 | Server.connections è stato rimosso. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.9.7 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.7.12 | Deprecazione 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]
Versione | Modifiche |
---|---|
v14.0.0 | Fine del ciclo di vita. |
v7.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.6.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v9.0.0 | Fine del ciclo di vita. |
v7.0.0 | Deprecazione a runtime. |
Tipo: Fine del ciclo di vita
L'API REPLServer.prototype.convertToContext()
è stata rimossa.
DEP0025: require('node:sys')
[Cronologia]
Versione | Modifiche |
---|---|
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v1.0.0 | Deprecazione a runtime. |
Tipo: Runtime
Il modulo node:sys
è deprecato. Si prega di utilizzare invece il modulo util
.
DEP0026: util.print()
[Cronologia]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.3 | Deprecazione a runtime. |
Tipo: Fine del ciclo di vita
util.print()
è stato rimosso. Si prega di utilizzare invece console.log()
.
DEP0027: util.puts()
[Cronologia]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.3 | Deprecazione a runtime. |
Tipo: Fine del ciclo di vita
util.puts()
è stato rimosso. Si prega di utilizzare invece console.log()
.
DEP0028: util.debug()
[Cronologia]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.3 | Deprecazione a runtime. |
Tipo: Fine del ciclo di vita
util.debug()
è stato rimosso. Si prega di utilizzare invece console.error()
.
DEP0029: util.error()
[Cronologia]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.11.3 | Deprecazione in fase di runtime. |
Tipo: Fine del ciclo di vita
util.error()
è stato rimosso. Si prega di utilizzare invece console.error()
.
DEP0030: SlowBuffer
[Cronologia]
Versione | Modifiche |
---|---|
v6.12.0 | È stato assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione solo della documentazione. |
Tipo: Solo documentazione
La classe SlowBuffer
è deprecata. Si prega di utilizzare invece Buffer.allocUnsafeSlow(size)
.
DEP0031: ecdh.setPublicKey()
[Cronologia]
Versione | Modifiche |
---|---|
v6.12.0 | È stato assegnato un codice di deprecazione. |
v5.2.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v1.4.2 | Deprecazione solo della documentazione. |
Tipo: Solo documentazione
Il modulo domain
è deprecato e non deve essere utilizzato.
DEP0033: EventEmitter.listenerCount()
[Cronologia]
Versione | Modifiche |
---|---|
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v3.2.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v1.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.4.7 | Deprecazione solo documentale. |
Tipo: Solo documentale
L'API fs.lchmod(path, mode, callback)
è deprecata.
DEP0036: fs.lchmodSync(path, mode)
[Cronologia]
Versione | Modifiche |
---|---|
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.4.7 | Deprecazione solo documentale. |
Tipo: Solo documentale
L'API fs.lchmodSync(path, mode)
è deprecata.
DEP0037: fs.lchown(path, uid, gid, callback)
[Cronologia]
Versione | Modifiche |
---|---|
v10.6.0 | Deprecazione revocata. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.4.7 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.6.0 | Deprecazione revocata. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.4.7 | Deprecazione 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]
Versione | Modifiche |
---|---|
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v0.10.6 | Deprecazione solo documentale. |
Tipo: Solo documentale
La proprietà require.extensions
è deprecata.
DEP0040: modulo node:punycode
[Cronologia]
Versione | Modifiche |
---|---|
v21.0.0 | Deprecazione runtime. |
v16.6.0 | Aggiunto il supporto per --pending-deprecation . |
v7.0.0 | Deprecazione solo documentale. |
Tipo: Runtime
Il modulo punycode
è deprecato. Si prega di utilizzare un'alternativa userland.
DEP0041: variabile d'ambiente NODE_REPL_HISTORY_FILE
[Cronologia]
Versione | Cambiamenti |
---|---|
v10.0.0 | Fine vita. |
v6.12.0, v4.8.6 | Assegnato un codice di deprecazione. |
v3.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v10.0.0 | Fine vita. |
v6.12.0, v4.8.6 | Assegnato un codice di deprecazione. |
v0.11.3 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v8.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0 | Assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione solo nella documentazione. |
v0.11.15 | Deprecazione revocata. |
v0.11.3 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | Assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo nella documentazione. |
Tipo: Esecuzione
L'API util.isArray()
è deprecata. Si prega di utilizzare Array.isArray()
al suo posto.
DEP0045: util.isBoolean()
[Cronologia]
Versione | Cambiamenti |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | Assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | Assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione a fine ciclo di vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione a fine ciclo di vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione a fine ciclo di vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione a fine ciclo di vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo documentale. |
Tipo: Fine ciclo di vita
L'API util.isNull()
è stata rimossa. Si prega di utilizzare arg === null
invece.
DEP0051: util.isNullOrUndefined()
[Cronologia]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione a fine ciclo di vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di runtime. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo documentale. |
Tipo: Fine vita
L'API util.isNumber()
è stata rimossa. Si prega di utilizzare invece typeof arg === 'number'
.
DEP0053: util.isObject()
[Cronologia]
Versione | Cambiamenti |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di runtime. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo documentale. |
Tipo: Fine vita
L'API util.isObject()
è stata rimossa. Si prega di utilizzare invece arg && typeof arg === 'object'
.
DEP0054: util.isPrimitive()
[Cronologia]
Versione | Cambiamenti |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di runtime. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di runtime. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo documentale. |
Tipo: Fine vita
L'API util.isRegExp()
è stata rimossa. Si prega di utilizzare invece arg instanceof RegExp
.
DEP0056: util.isString()
[Cronologia]
Versione | Cambiamenti |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di runtime. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo documentale. |
Tipo: Fine vita
L'API util.isString()
è stata rimossa. Si prega di utilizzare invece typeof arg === 'string'
.
DEP0057: util.isSymbol()
[Cronologia]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo documentale. |
Tipo: Fine vita
L'API util.isSymbol()
è stata rimossa. Si prega di utilizzare invece typeof arg === 'symbol'
.
DEP0058: util.isUndefined()
[Cronologia]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0, v4.8.6 | È stato assegnato un codice di deprecazione. |
v4.0.0, v3.3.1 | Deprecazione solo documentale. |
Tipo: Fine vita
L'API util.isUndefined()
è stata rimossa. Si prega di utilizzare invece arg === undefined
.
DEP0059: util.log()
[Cronologia]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione di fine vita. |
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0 | È stato assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.0.0 | Deprecazione in fase di esecuzione. |
v6.12.0 | È stato assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v11.0.0 | Fine del ciclo di vita. |
v8.0.0 | Deprecazione runtime. |
v7.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v8.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v8.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v8.0.0 | Deprecazione runtime. |
v6.12.0 | È stato assegnato un codice di deprecazione. |
v6.0.0 | Deprecazione solo nella documentazione. |
v0.11.15 | Deprecazione revocata. |
v0.11.3 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Fine del ciclo di vita. |
v8.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Deprecazione in fase di runtime. |
v8.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v8.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v15.0.0 | Il comando legacy node debug è stato rimosso. |
v8.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Fine vita. |
v9.0.0 | Deprecazione in fase di runtime. |
v8.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v9.0.0 | Fine vita. |
v8.2.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v9.0.0 | Fine vita. |
v8.2.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v9.0.0 | Fine vita. |
v8.2.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v10.0.0 | Fine vita. |
v9.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v15.0.0 | Fine vita. |
v9.0.0 | Deprecazione a runtime. |
Tipo: Fine vita
La proprietà REPLServer.bufferedCommand
è stata deprecata a favore di REPLServer.clearBufferedCommand()
.
DEP0075: REPLServer.parseREPLKeyword()
[Cronologia]
Versione | Cambiamenti |
---|---|
v15.0.0 | Fine vita. |
v9.0.0 | Deprecazione a runtime. |
Tipo: Fine vita
REPLServer.parseREPLKeyword()
è stato rimosso dalla visibilità userland.
DEP0076: tls.parseCertString()
[Cronologia]
Versione | Cambiamenti |
---|---|
v18.0.0 | Fine vita. |
v9.0.0 | Deprecazione a runtime. |
v8.6.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v9.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v15.0.0 | Fine del ciclo di vita. |
v9.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v11.0.0 | Fine del ciclo di vita. |
v10.0.0 | Deprecazione in fase di runtime. |
v8.7.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v9.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v9.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v15.0.0 | Fine del ciclo di vita. |
v9.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Fine del ciclo di vita. |
v9.2.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Questa funzionalità è stata rimossa. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Fine del ciclo di vita. |
v9.4.0, v8.10.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Fine del ciclo di vita. |
v9.4.0, v8.10.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.8.0 | Deprecazione revocata. |
v9.9.0, v8.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v11.0.0 | Fine del ciclo di vita. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v20.0.0 | Fine del ciclo di vita. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione runtime. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Deprecazione runtime. |
Tipo: Runtime
timers.enroll()
è deprecato. Si prega di utilizzare i metodi documentati pubblicamente setTimeout()
o setInterval()
invece.
DEP0096: timers.unenroll()
[Cronologia]
Versione | Modifiche |
---|---|
v10.0.0 | Deprecazione runtime. |
Tipo: Runtime
timers.unenroll()
è deprecato. Si prega di utilizzare i metodi documentati pubblicamente clearTimeout()
o clearInterval()
invece.
DEP0097: MakeCallback
con proprietà domain
[Cronologia]
Versione | Modifiche |
---|---|
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del supporto. |
v10.0.0, v9.6.0, v8.12.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Fine del ciclo di vita. |
v10.0.0 | Deprecazione in fase di runtime. |
v0.3.7 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Fine 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]
Versione | Modifiche |
---|---|
v10.0.0 | Fine 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]
Versione | Modifiche |
---|---|
v10.9.0 | Sostituito da DEP0111. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v11.0.0 | Fine del ciclo di vita. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.0.0 | Fine del ciclo di vita. |
v11.0.0 | Deprecazione in fase di runtime. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v11.0.0 | Fine del ciclo di vita. |
v10.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Fine del ciclo di vita. |
v11.0.0 | Deprecazione in fase di runtime. |
v10.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v16.0.0 | Fine del ciclo di vita. |
v11.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v10.6.0 | Deprecazione solo documentazione. |
Tipo: Solo documentazione
L'opzione produceCachedData
è deprecata. Utilizzare invece script.createCachedData()
.
DEP0111: process.binding()
[Cronologia]
Versione | Cambiamenti |
---|---|
v11.12.0 | Aggiunto il supporto per --pending-deprecation . |
v10.9.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v11.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v12.0.0 | Fine vita. |
v11.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v12.0.0 | Fine vita. |
v11.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v11.0.0 | Aggiunta 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]
Versione | Cambiamenti |
---|---|
v19.0.0, v18.13.0 | url.parse() è nuovamente deprecata in DEP0169. |
v15.13.0, v14.17.0 | Deprecazione revocata. Stato cambiato in "Legacy". |
v11.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v11.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v11.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v11.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Fine del ciclo di vita. |
v11.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v12.0.0 | Deprecazione in fase di esecuzione. |
Tipo: Esecuzione
Si prega di utilizzare Server.prototype.setSecureContext()
invece.
DEP0123: impostazione del TLS ServerName a un indirizzo IP
[Storia]
Versione | Cambiamenti |
---|---|
v12.0.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v15.0.0 | Fine del ciclo di vita. |
v12.0.0 | Deprecazione in fase di esecuzione. |
Tipo: Fine del ciclo di vita
Questa proprietà è un riferimento all'istanza stessa.
DEP0125: require('node:_stream_wrap')
[Storia]
Versione | Cambiamenti |
---|---|
v12.0.0 | Deprecazione in fase di esecuzione. |
Tipo: Esecuzione
Il modulo node:_stream_wrap
è deprecato.
DEP0126: timers.active()
[Storia]
Versione | Cambiamenti |
---|---|
v11.14.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v11.14.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v16.0.0 | Deprecazione in fase di esecuzione. |
v12.0.0 | Solo 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]
Versione | Modifiche |
---|---|
v13.0.0 | Deprecazione in fase di runtime. |
v11.14.0 | Solo 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]
Versione | Modifiche |
---|---|
v16.0.0 | Fine vita. |
v13.0.0 | Deprecazione in fase di runtime. |
v12.2.0 | Solo documentazione. |
Tipo: Fine vita
Utilizzare invece module.createRequire()
.
DEP0131: Parser HTTP legacy
[Storia]
Versione | Modifiche |
---|---|
v13.0.0 | Questa funzionalità è stata rimossa. |
v12.22.0 | Deprecazione in fase di runtime. |
v12.3.0 | Solo 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]
Versione | Modifiche |
---|---|
v12.5.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v12.12.0 | Deprecazione solo documentazione. |
Tipo: Solo documentazione
Preferire response.socket
a response.connection
e request.socket
a request.connection
.
DEP0134: process._tickCallback
[Storia]
Versione | Modifiche |
---|---|
v12.12.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v13.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v13.4.0, v12.16.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v14.0.0 | Deprecazione 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:
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]
Versione | Modifiche |
---|---|
v14.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v14.0.0, v12.19.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v14.1.0, v13.14.0 | Deprecazione solo documentale. |
Tipo: Solo documentale
Usare request.destroy()
invece di request.abort()
.
DEP0141: repl.inputStream
e repl.outputStream
[Cronologia]
Versione | Modifiche |
---|---|
v14.3.0 | Solo 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]
Versione | Modifiche |
---|---|
v14.3.0 | Solo 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]
Versione | Modifiche |
---|---|
v14.5.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v14.6.0, v12.19.0 | Deprecazione 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
:
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
:
const moduleParents = Object.values(require.cache).filter(m => m.children.includes(module))
DEP0145: socket.bufferSize
[Cronologia]
Versione | Modifiche |
---|---|
v14.6.0 | Deprecazione solo nella documentazione. |
Tipo: Solo documentazione
socket.bufferSize
è solo un alias per writable.writableLength
.
DEP0146: new crypto.Certificate()
[Cronologia]
Versione | Modifiche |
---|---|
v14.9.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v16.0.0 | Deprecazione in fase di esecuzione. |
v15.0.0 | Deprecazione in fase di esecuzione per comportamento permissivo. |
v14.14.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v17.0.0 | Fine del ciclo di vita. |
v16.0.0 | Deprecazione a runtime. |
v15.1.0 | Deprecazione a runtime per importazioni autoreferenziali. |
v14.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v16.0.0 | Deprecazione solo nella documentazione. |
Tipo: Solo documentazione.
Preferire message.socket
a message.connection
.
DEP0150: Modifica del valore di process.config
[Cronologia]
Versione | Modifiche |
---|---|
v19.0.0 | Fine del ciclo di vita. |
v16.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v16.0.0 | Deprecazione a runtime. |
v15.8.0, v14.18.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v16.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v18.0.0 | Fine del ciclo di vita. |
v17.0.0 | Deprecazione runtime. |
v16.8.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v20.0.0 | Deprecazione runtime. |
v16.10.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v17.0.0 | Deprecazione runtime. |
v16.10.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v17.0.0, v16.12.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v18.0.0 | Fine del ciclo di vita. |
v17.2.0, v16.14.0 | Deprecazione 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.
const w = new Writable({
async final(callback) {
await someOp()
callback()
},
})
DEP0158: buffer.slice(start, end)
[Cronologia]
Versione | Modifiche |
---|---|
v17.5.0, v16.15.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v18.0.0 | Fine 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]
Versione | Modifiche |
---|---|
v18.0.0 | Deprecazione runtime. |
v17.6.0, v16.15.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v17.6.0, v16.15.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v19.0.0 | Fine del ciclo di vita. |
v18.0.0 | Deprecazione in fase di esecuzione. |
v17.8.0, v16.15.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v18.7.0, v16.17.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v20.0.0 | Fine del ciclo di vita. |
v19.0.0 | Deprecazione in fase di esecuzione. |
v18.10.0, v16.18.0 | Deprecazione solo documentale della conversione forzata a intero di process.exitCode . |
v18.7.0, v16.17.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v23.0.0 | Fine del ciclo di vita. |
v22.0.0 | Deprecazione a runtime. |
v18.8.0, v16.18.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v19.0.0 | Deprecazione a runtime. |
v18.10.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v18.10.0, v16.18.0 | Deprecazione 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]
Versione | Cambiamenti |
---|---|
v18.3.0, v16.17.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v19.9.0, v18.17.0 | Aggiunto il supporto per --pending-deprecation . |
v19.0.0, v18.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v20.0.0 | Deprecazione in fase di esecuzione. |
v19.2.0, v18.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v19.3.0, v18.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v20.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v20.1.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v21.0.0 | Deprecazione in fase di esecuzione. |
v20.8.0 | Deprecazione solo documentale. |
Tipo: Fase di esecuzione
Chiamare util.promisify
su una funzione che restituisce una
DEP0175: util.toUSVString
[Cronologia]
Versione | Modifiche |
---|---|
v20.8.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v20.8.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v21.7.0, v20.12.0 | Fine del ciclo di vita. |
v21.3.0, v20.11.0 | È stato assegnato un codice di deprecazione. |
v14.0.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione in fase di esecuzione. |
v21.5.0, v20.12.0, v18.20.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.0.0 | Deprecazione in fase di esecuzione. |
v21.5.0, v20.12.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.0.0 | Deprecazione in fase di esecuzione. |
v20.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.0.0 | Deprecazione in fase di esecuzione. |
v20.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.0.0 | Deprecazione in fase di esecuzione. |
v20.13.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.4.0, v20.16.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.9.0, v20.18.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v22.9.0, v20.18.0 | Deprecazione 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]
Versione | Modifiche |
---|---|
v23.4.0 | Solo 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]
Versione | Modifiche |
---|---|
v23.4.0 | Deprecazione solo documentale. |
Tipo: Solo documentale
Queste proprietà sono incondizionatamente true
. Qualsiasi controllo basato su queste proprietà è ridondante.
DEP0189: process.features.tls_*
[Cronologia]
Versione | Modifiche |
---|---|
v23.4.0 | Deprecazione 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
.