Du använder mongoose, den avger händelser (EventEmitter-mönstret) när databasen är nere och när databasen återansluter och upp igen.
från mongoose kod hittas här vi kan se att bibliotekets db-anslutning - connection.js">>
har följande händelser som sänds ut:* @param {Mongoose} baserar en mongoose-instans* @inherits NodeJS EventEmitter
http://nodejs.org/api/events.html#events_class_events_eventemitter
* @event connecting
:Sänds vid connection.{open,openSet}()
exekveras på denna anslutning.
-
@event
connected
:Sänds när den här anslutningen lyckas ansluta till db. Kan sändas ut flera gånger ireconnected
scenarier. -
@event
open
:Sänds ut efter att viconnected
ochonOpen
exekveras på alla dessa anslutningsmodeller. -
@event
disconnecting
:Sänds ut närconnection.close()
avrättades. -
@event
disconnected
:Sänds efter att ha kopplats bort från db. -
@event
close
:Sänds ut efter att vidisconnected
ochonClose
körs på alla dessa anslutningsmodeller. -
@event
reconnected
:Sänds ut efter att viconnected
och därefterdisconnected
, följt av en annan framgångsrik anslutning. -
@event
error
:Sänds när ett fel uppstår på den här anslutningen. -
@event
fullsetup
:Sänds ut i ett replikuppsättningsscenario, när primära och minst en sekundär som anges i anslutningssträngen är anslutna. -
@event
all
:Sänds ut i ett replikuppsättningsscenario när alla noder som anges i anslutningssträngen är anslutna.
När databasen är nere kommer du att få två händelser:1. frånkopplad 2. fel (felet som drivrutinen stötte på)
När databasen är uppe igen kommer du att få återanslutningshändelsen.
Så du behöver inte försöka fånga felet utan du bör lyssna på dessa händelser.
Mer användbar information om anslutningsfel och återanslutning finns här .
Den här artikeln förklarar hur du använder och konfigurerar autoReconnect och bufferMaxEntries enligt dina inställningar.