Ponowne publikowanie z https://jira.mongodb.org/browse/NODE-1868:
Komunikaty o wycofaniu są prawdopodobnie spowodowane tym, że client.connect jest wywoływany wielokrotnie. Ogólnie rzecz biorąc, wywoływanie client.connect obecnie wiele razy (od sterownika v3.1.13 ) ma niezdefiniowane zachowanie i nie jest to zalecane. Ważne jest, aby pamiętać, że gdy obietnica zostanie zwrócona z connect rozwiązuje się, klient pozostaje podłączony do momentu wywołania client.close :
const client = new MongoClient(...);
client.connect().then(() => {
// client is now connected.
return client.db('foo').collection('bar').insertOne({
}).then(() => {
// client is still connected.
return client.close();
}).then(() => {
// client is no longer connected. attempting to use it will result in undefined behavior.
});
Klient domyślnie utrzymuje wiele połączeń z każdym serwerem, z którym jest połączony, i może być używany do wielu jednoczesnych operacji*. Powinieneś być w porządku z client.connect raz, a następnie uruchamianie operacji na obiekcie klienta
* Zwróć uwagę, że klient NIE jest bezpieczny dla wątków ani fork-safe, więc nie może być współużytkowany przez fork i nie jest kompatybilny z cluster węzła lub worker_threads moduły.