Pokud jste se již připojili k databázi, once událost se znovu nespustí. Databáze již byla připojena pro celý proces NodeJs, když byla globálně připojena (mimo funkci).
Volání mongoose.connect('mongodb://localhost/test'); vytvoří spojení a otevře jej.
Takže místo otevření při každém volání funkce (což by byl neefektivní způsob interakce s MongoDB) connect ihned po spuštění aplikace NodeJs a počítejte s tím, že nastane období, kdy připojení nemusí být dostupné (protože je asynchronní), nebo aplikaci nespouštějte (listen ), dokud nebude připojení dokončeno (nebo s časovým limitem). S Mongoose jsou všechny příkazy ukládány do vyrovnávací paměti, dokud není navázáno připojení (ale to nemusí být chování, které chcete). Můžete použít open událost, pokud chcete vědět, kdy je připojení dokončeno.
Spojení naleznete zde:mongoose.connection pokud použijete connect funkce pro vytvoření připojení.
Jakmile je připojení otevřeno, můžete jej používat ze svého popSingleData funkce bez použití once událost a zpětné volání. Automaticky je udržován fond připojení.
Další informace o připojeních naleznete zde .