Wie bereits erwähnt, wurde die 3.1.0-beta4Freigabe des Fahrers durch das Aussehen der Dinge etwas früher "in die Wildnis entlassen". Die Version ist Teil der laufenden Arbeiten, um neuere Funktionen in der kommenden Version von MongoDB 4.0 zu unterstützen und einige andere API-Änderungen vorzunehmen.
Eine solche Änderung, die die aktuelle Warnung auslöst, ist die useNewUrlParserOption, da einige Änderungen an der tatsächlichen Übergabe des Verbindungs-URI vorgenommen wurden. Dazu später mehr.
Bis sich die Dinge "beruhigt" haben, wäre es wahrscheinlich ratsam, zumindest die Nebenversion für 3.0.xVeröffentlichungen zu "pinnen" :
"dependencies": {
"mongodb": "~3.0.8"
}
Dadurch sollte verhindert werden, dass der 3.1.xZweig bei "Neuinstallationen" auf Knotenmodulen installiert wird. Wenn Sie bereits eine "neueste" Version installiert haben, bei der es sich um die "Beta" -Version handelt, sollten Sie Ihre Pakete bereinigen (undpackage-lock.json ) und sicherstellen, dass Sie diese auf eine 3.0.xSerienversion reduzieren.
Was die tatsächliche Verwendung der "neuen" Verbindungs-URI-Optionen betrifft, besteht die Haupteinschränkung darin, die portin der Verbindungszeichenfolge tatsächlich anzugeben:
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)
}
})()
Das ist eine "strengere" Regel im neuen Code. Der Hauptpunkt ist, dass der aktuelle Code im Wesentlichen Teil des mongodbRepository-Codes "Node-Native-Driver" (npm ) ist und der "neue Code" tatsächlich aus dem importiertmongodb-core Bibliothek den "öffentlichen" Knotentreiber "untermauert".
Der Sinn der hinzugefügten "Option" besteht darin, den Übergang zu "vereinfachen", indem die Option zu neuem Code hinzugefügt wird, damit der neuere Parser (tatsächlich basierend auf) url ) zum Hinzufügen der Option und zum Löschen der Verfallswarnung verwendet wird, um dies zu überprüfen Ihre übergebenen Verbindungszeichenfolgen entsprechen tatsächlich den Erwartungen des neuen Parsers.
In zukünftigen Versionen wird der "ältere" Parser entfernt, und dann wird der neue Parser einfach das sein, was auch ohne die Option verwendet wird. Zu diesem Zeitpunkt wird jedoch erwartet, dass der gesamte vorhandene Code ausreichend Gelegenheit hatte, die vorhandenen Verbindungszeichenfolgen anhand der Erwartungen des neuen Parsers zu testen.
Wenn Sie also neue Treiberfunktionen verwenden möchten, sobald diese veröffentlicht werden, verwenden Sie die verfügbaren betaund nachfolgenden Versionen und stellen Sie im Idealfall sicher, dass Sie eine Verbindungszeichenfolge bereitstellen, die für den neuen Parser gültig ist, indem Sie die useNewUrlParserOption in aktivieren MongoClient.connect().
Wenn Sie keinen Zugriff auf Funktionen benötigen, die sich auf die Vorschau der MongoDB 4.0-Version beziehen, können Sie die Version wie bereits erwähnt an eine 3.0.xSerie anheften. Dies funktioniert wie dokumentiert und durch "Anheften" wird sichergestellt, dass 3.1.xReleases nicht über die erwartete Abhängigkeit "aktualisiert" werden, bis Sie tatsächlich eine stabile Version installieren möchten.
betaVersion, die am Wochenende irgendwie auf npm veröffentlicht wurde. Machen Sie sich keine Sorgen, bis die API tatsächlich fertiggestellt ist. Sie haben das Richtige getan, um eine stabile Version zu installieren.