Ripubblicazione da https://jira.mongodb.org/browse/NODE-1868:
I messaggi di ritiro sono probabili perché client.connect
viene chiamato più volte. Nel complesso, chiamando client.connect
più volte attualmente (a partire dal driver v3.1.13
) ha un comportamento indefinito e non è consigliato. È importante notare che una volta restituita la promessa da connect
risolve, il client rimane connesso finché non chiami 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.
});
Per impostazione predefinita, il client mantiene più connessioni a ciascun server a cui è connesso e può essere utilizzato per più operazioni simultanee*. Dovresti eseguire correttamente client.connect
una volta, quindi eseguire le operazioni sull'oggetto client
* Nota che il client NON è thread-safe o fork-safe, quindi non può essere condiviso tra fork e non è compatibile con il cluster
del nodo o worker_threads
moduli.