Jak już wspomniano, 3.1.0-beta4
wydanie sterownika zostało „wypuszczone na wolność” nieco wcześniej. Wydanie jest częścią trwających prac nad obsługą nowszych funkcji w nadchodzącej wersji MongoDB 4.0 i wprowadzeniem innych zmian w interfejsie API.
Jedną z takich zmian wywołujących bieżące ostrzeżenie jest useNewUrlParser
opcja z powodu pewnych zmian dotyczących sposobu, w jaki faktycznie działa przekazywanie identyfikatora URI połączenia. Więcej o tym później.
Do czasu, aż wszystko się „uspokoi”, prawdopodobnie wskazane byłoby „przypięcie” przynajmniej do mniejszej wersji 3.0.x
wydań:
"dependencies": {
"mongodb": "~3.0.8"
}
To powinno powstrzymać instalację 3.1.x
gałęzi w „świeżych” instalacjach modułów węzłów. Jeśli już zainstalowałeś „najnowszą” wersję, która jest wersją „beta”, powinieneś wyczyścić swoje pakiety (i package-lock.json
) i upewnić się, że podbijesz to do3.0.x
wersji seryjnej.
Jeśli chodzi o korzystanie z opcji „nowego” identyfikatora URI połączenia, głównym ograniczeniem jest włączenie port
łańcucha połączenia:
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)
}
})()
To jest bardziej „ścisła” reguła w nowym kodzie. Głównym punktem jest to, że bieżący kod jest zasadniczo częścią mongodb
kodu repozytorium „natywny sterownik węzła” (npm ), a „nowy kod” faktycznie importuje się zmongodb-core
biblioteki, która „stanowi podstawę” „publicznego” sterownika węzła.
Dodawaną „opcją” jest „ułatwienie” przejścia przez dodanie opcji do nowego kodu, aby nowszy parser (faktycznie oparty na url
w kodzie jest używany ) do dodania opcji i wyczyszczenia ostrzeżenia o wycofaniu, a zatem sprawdzenia, czy przekazane parametry połączenia są zgodne z oczekiwaniami nowego analizatora składni.
W przyszłych wydaniach parser „starszy” zostałby usunięty, a następnie nowy parser będzie po prostu używany bez opcji. Ale do tego czasu oczekuje się, że cały istniejący kod miał wystarczającą okazję do przetestowania istniejących parametrów połączenia pod kątem tego, czego oczekuje nowy parser.
Jeśli więc chcesz zacząć korzystać z nowych funkcji sterownika w momencie ich wydania, skorzystaj z dostępnych beta
i kolejnych wydań, a najlepiej upewnij się, że podajesz ciąg połączenia, który jest ważny dla nowego parsera, włączając useNewUrlParser
opcję w MongoClient.connect()
.
Jeśli tak naprawdę nie potrzebujesz dostępu do funkcji związanych z podglądem wersji MongoDB 4.0, przypnij wersję do 3.0.x
serii, jak wspomniano wcześniej. Będzie to działać zgodnie z dokumentacją, a „przypinanie” zapewni, że 3.1.x
wydania nie będą „aktualizowane” w stosunku do oczekiwanej zależności, dopóki faktycznie nie chcesz zainstalować stabilnej wersji.
beta
wersji, która jakoś wydała na npm w weekend. Nie przejmuj się nim, dopóki interfejs API nie zostanie faktycznie sfinalizowany. Zrobiłeś dobrze, instalując stabilną wersję.