sql >> Databasteknik >  >> NoSQL >> MongoDB

Vad är det korrekta sättet att hantera mongoose-anslutningar med express.js?

Om du redan anslutit till databasen, once händelsen kommer inte att starta igen. Databasen var redan ansluten för hela NodeJs-processen när den var globalt ansluten (utanför funktionen).

Anropet till mongoose.connect('mongodb://localhost/test'); gör anslutningen och öppnar den.

Så istället för att öppna det vid varje funktionsanrop (vilket skulle vara ett ineffektivt sätt att interagera med MongoDB) connect direkt när NodeJs-appen startas, och tänk på att det kommer att finnas en period då anslutningen kanske inte är tillgänglig (eftersom den är asynkron), eller starta inte appen (listen ) tills anslutningen är klar (eller med en timeout). Med Mongoose, tills anslutningen är upprättad, buffras alla kommandon (men det kanske inte är det beteende du vill ha). Du kan använda open händelse om du vill veta när anslutningen är klar.

Anslutningen finns här:mongoose.connection om du använder connect funktion för att skapa anslutningen.

När anslutningen har öppnats kan du använda den från din popSingleData utan att använda once händelse och återuppringning. Det finns en anslutningspool som underhålls automatiskt.

För mer om anslutningar, läs här .




  1. Kopiera och byt namn på ett dokumentfält i MongoDB

  2. Mongoose uppdatera djupa arrayer

  3. Hur lagrar man en bild i nodbackend?

  4. Mongoose-schema:Validerar unikt fält, skiftlägesokänsligt