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 .