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

Når mongodb-serveren er nede, hvordan fanger man fejlen, mens man kører mongoose-forespørgsel

Du bruger mongoose, den udsender hændelser (EventEmitter-mønsteret), når databasen er nede, og når databasen genopretter forbindelse og op igen.

fra mongoose-kode fundet her vi kan se, at bibliotekets db-forbindelse - connection.js">>

har følgende hændelser, der udsendes:* @param {Mongoose} baserer en mongoose-forekomst* @inherits NodeJS EventEmitter

http://nodejs.org/api/events.html#events_class_events_eventemitter * @event connecting :Udsendes ved connection.{open,openSet}() udføres på denne forbindelse.

  • @event connected :Udsendes, når denne forbindelse opretter forbindelse til db. Kan udsendes flere gange i reconnected scenarier.

  • @event open :Udsendes efter vi connected og onOpen udføres på alle disse forbindelsesmodeller.

  • @event disconnecting :Udsendes når connection.close() blev henrettet.

  • @event disconnected :Udsendes efter at være blevet afbrudt fra db.

  • @event close :Udsendes efter at vi disconnected og onClose udført på alle disse forbindelsesmodeller.

  • @event reconnected :Udsendes efter vi connected og efterfølgende disconnected , efterfulgt af endnu en vellykket forbindelse.

  • @event error :Udsendes, når der opstår en fejl på denne forbindelse.

  • @event fullsetup :Udsendes i et scenarie med replikasæt, når primær og mindst én sekundær, der er angivet i forbindelsesstrengen, er forbundet.

  • @event all :Udsendes i et replika-sæt scenarie, når alle noder specificeret i forbindelsesstrengen er forbundet.

Når databasen er nede vil du modtage to begivenheder:1. afbrudt 2. fejl (den fejl, som driveren stødte på)

Når databasen er oppe igen, vil du modtage gentilslutningshændelsen.

Så du behøver ikke prøve at fange fejlen, men du bør lytte til disse begivenheder.

Flere nyttige oplysninger om forbindelsesfejl og genforbindelse kan findes her .

Denne artikel forklarer, hvordan du bruger og konfigurerer autoReconnect og bufferMaxEntries i henhold til dine indstillinger.




  1. Filtrer efter dato ved hjælp af et idObject

  2. $spring og $limit i aggregeringsramme

  3. mongoose-forespørgsel:find et objekt efter id i et array

  4. MongoDB:Match flere array-elementer