Hvis du allerede har oprettet forbindelse til databasen, er once
begivenheden vil ikke udløses igen. Databasen var allerede forbundet for hele NodeJs-processen, da den var globalt forbundet (uden for funktionen).
Kaldet til mongoose.connect('mongodb://localhost/test');
laver forbindelsen og åbner den.
Så i stedet for at åbne det ved hvert funktionskald (hvilket ville være en ineffektiv måde at interagere med MongoDB på) connect
med det samme, når NodeJs-appen startes, og overvej, at der vil være en periode, hvor forbindelsen muligvis ikke er tilgængelig (da den er asynkron), eller start ikke appen (listen
), indtil forbindelsen er fuldført (eller med en timeout). Med Mongoose, indtil forbindelsen er oprettet, bufferes alle kommandoer (men det er muligvis ikke den adfærd, du ønsker). Du kan bruge open
begivenhed, hvis du vil vide, hvornår forbindelsen er fuldført.
Forbindelsen findes her:mongoose.connection
hvis du bruger connect
funktion for at oprette forbindelsen.
Når forbindelsen er åbnet, kan du bruge den fra din popSingleData
funktion uden at bruge once
begivenhed og tilbagekald. Der er en forbindelsespool, der automatisk vedligeholdes.
For mere om forbindelser, læs her .