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.