sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvad er den rigtige måde at håndtere mongoose-forbindelser med express.js?

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 .




  1. Glemt mongodb datasti

  2. Mongodb C# driveropdatering af alle subarray-elementer mislykkedes, når arrayet er tomt

  3. hvorfor får jeg favicon.ico, når jeg bruger findOne-metoden til express params-ruter?

  4. Hadoop – En Apache Hadoop-tutorials for begyndere