sql >> Database >  >> NoSQL >> MongoDB

Wat is de juiste manier om mangoestverbindingen met express.js af te handelen?

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. .




  1. Laravel-caching begrijpen:cache-façade en Redis

  2. MongoExport Te veel positionele opties

  3. Hoe voer je een AND-query uit op een array in mongodb?

  4. Python + Memcached:efficiënte caching in gedistribueerde applicaties