Wie bereits erwähnt, wurde die 3.1.0-beta4
Freigabe 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 useNewUrlParser
Option, 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.x
Veröffentlichungen zu "pinnen" :
"dependencies": {
"mongodb": "~3.0.8"
}
Dadurch sollte verhindert werden, dass der 3.1.x
Zweig 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.x
Serienversion reduzieren.
Was die tatsächliche Verwendung der "neuen" Verbindungs-URI-Optionen betrifft, besteht die Haupteinschränkung darin, die port
in 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 mongodb
Repository-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 beta
und 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 useNewUrlParser
Option 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.x
Serie anheften. Dies funktioniert wie dokumentiert und durch "Anheften" wird sichergestellt, dass 3.1.x
Releases nicht über die erwartete Abhängigkeit "aktualisiert" werden, bis Sie tatsächlich eine stabile Version installieren möchten.
beta
Version, 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.