Come notato, il 3.1.0-beta4rilascio del driver è stato "rilasciato in natura" un po 'presto dall'aspetto delle cose. La versione fa parte dei lavori in corso per supportare le nuove funzionalità della prossima versione di MongoDB 4.0 e apportare alcune altre modifiche all'API.
Una di queste modifiche che attiva l'avviso corrente è l' useNewUrlParseropzione, a causa di alcune modifiche al funzionamento effettivo del passaggio dell'URI di connessione. Ne parleremo più avanti.
Fino a quando le cose non si "sistemeranno", sarebbe probabilmente consigliabile "bloccare" almeno la versione minore per le 3.0.xversioni:
"dependencies": {
"mongodb": "~3.0.8"
}
Ciò dovrebbe impedire l' 3.1.xinstallazione della diramazione su installazioni "nuove" sui moduli del nodo. Se hai già installato una versione "più recente" che è la versione "beta", allora dovresti ripulire i tuoi pacchetti (e package-lock.json) e assicurarti di 3.0.xscaricarlo fino a una versione in serie.
Per quanto riguarda effettivamente l'utilizzo delle "nuove" opzioni di URI di connessione, la restrizione principale è quella di includere effettivamente portla stringa di connessione:
const { MongoClient } = require("mongodb");
const uri = 'mongodb://localhost:27017'; // mongodb://localhost - will fail
(async function() {
try {
const client = await MongoClient.connect(uri,{ useNewUrlParser: true });
// ... anything
client.close();
} catch(e) {
console.error(e)
}
})()
Questa è una regola più "rigorosa" nel nuovo codice. Il punto principale è che il codice corrente è essenzialmente parte del mongodbcodice del repository "nodo-nativo-driver" (npm ) e il "nuovo codice" in realtà importa dalla mongodb-corelibreria che "sostiene" il driver del nodo "pubblico".
Il punto dell '"opzione" che viene aggiunta è quello di "facilitare" la transizione aggiungendo l'opzione al nuovo codice in modo che il parser più recente (attualmente basato intorno url) venga utilizzato nel codice aggiungendo l'opzione e cancellando l'avvertimento di deprecazione, e quindi verificando che le stringhe di connessione passate sono effettivamente conformi a quanto previsto dal nuovo parser.
Nelle versioni future il parser 'legacy' verrebbe rimosso e quindi il nuovo parser sarà semplicemente quello che viene usato anche senza l'opzione. Ma a quel punto, si prevede che tutto il codice esistente avesse ampie opportunità di testare le stringhe di connessione esistenti rispetto a ciò che il nuovo parser si aspetta.
Quindi, se si desidera iniziare a utilizzare le nuove funzionalità del driver man mano che vengono rilasciate, utilizzare le versioni disponibili betae successive e idealmente assicurarsi di fornire una stringa di connessione valida per il nuovo parser abilitando l' useNewUrlParseropzione in MongoClient.connect().
Se in realtà non hai bisogno di accedere alle funzionalità relative all'anteprima della versione MongoDB 4.0, aggiungi la versione a una 3.0.xserie come notato in precedenza. Funzionerà come documentato e il "blocco" garantisce che le 3.1.xversioni non vengano "aggiornate" rispetto alla dipendenza prevista fino a quando non si desidera effettivamente installare una versione stabile.
betaViene dalla versione che in qualche modo è stata rilasciata su npm durante il fine settimana. Non preoccuparti fino a quando l'API non è stata finalizzata. Hai fatto la cosa giusta installando una versione stabile.