Als u al verbinding had met de database, wordt de once
evenement wordt niet meer geactiveerd. De database was al verbonden voor het hele NodeJs-proces toen deze wereldwijd was verbonden (buiten de functie).
De aanroep naar mongoose.connect('mongodb://localhost/test');
maakt de verbinding en opent deze.
Dus, in plaats van het te openen bij elke functie-aanroep (wat een inefficiënte manier zou zijn om met MongoDB te communiceren) connect
meteen wanneer de NodeJs-app wordt gestart, en bedenk dat er een periode zal zijn waarin de verbinding mogelijk niet beschikbaar is (omdat deze async is), of start de app niet (listen
) totdat de verbinding is voltooid (of met een time-out). Met Mongoose worden alle opdrachten gebufferd totdat de verbinding tot stand is gebracht (maar dat is misschien niet het gewenste gedrag). U kunt de open
. gebruiken gebeurtenis als u wilt weten wanneer de verbinding is voltooid.
De verbinding is hier te vinden:mongoose.connection
als je de connect
. gebruikt functie om de verbinding tot stand te brengen.
Zodra de verbinding is geopend, kunt u deze gebruiken vanaf uw popSingleData
functie zonder de once
evenement en terugbellen. Er wordt automatisch een verbindingspool bijgehouden.
Lees hier voor meer informatie over verbindingen. .