MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was ist der richtige Weg, um Mungo-Verbindungen mit express.js zu handhaben?

Wenn Sie sich bereits mit der Datenbank verbunden haben, wird die once Ereignis wird nicht erneut ausgelöst. Die Datenbank war bereits für den gesamten NodeJs-Prozess verbunden, als sie global verbunden war (außerhalb der Funktion).

Der Aufruf von mongoose.connect('mongodb://localhost/test'); stellt die Verbindung her und öffnet sie.

Anstatt es also bei jedem Funktionsaufruf zu öffnen (was eine ineffiziente Art der Interaktion mit MongoDB wäre), connect sofort, wenn die NodeJs-App gestartet wird, und bedenken Sie, dass es einen Zeitraum geben wird, in dem die Verbindung möglicherweise nicht verfügbar ist (da sie asynchron ist), oder starten Sie die App nicht (listen ) bis die Verbindung hergestellt ist (oder mit einem Timeout). Bei Mongoose werden alle Befehle gepuffert, bis die Verbindung hergestellt ist (aber das ist möglicherweise nicht das gewünschte Verhalten). Sie können den open verwenden Ereignis, wenn Sie wissen möchten, wann die Verbindung hergestellt ist.

Die Verbindung finden Sie hier:mongoose.connection wenn Sie den connect verwenden Funktion, um die Verbindung herzustellen.

Sobald die Verbindung geöffnet ist, können Sie sie aus Ihren popSingleData verwenden Funktion ohne Verwendung von once Ereignis und Rückruf. Es gibt einen Verbindungspool, der automatisch verwaltet wird.

Weitere Informationen zu Verbindungen finden Sie hier .