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 .