Stai usando mongoose, emette eventi (il pattern EventEmitter) quando il database è inattivo e quando il database si riconnette e si riattiva.
dal codice mongoose trovato qui possiamo vedere che la connessione db della libreria - connection.js
ha i seguenti eventi che vengono emessi:* @param {Mongoose} base a mongoose instance* @inherits NodeJS EventEmitter
http://nodejs.org/api/events.html#events_class_events_eventemitter
* @event connecting
:Emesso quando connection.{open,openSet}()
viene eseguito su questa connessione.
-
@event
connected
:Emesso quando questa connessione si connette correttamente al db. Possono essere emessi più volte inreconnected
scenari. -
@evento
open
:Emesso dopo che ci siamoconnected
eonOpen
viene eseguito su tutti questi modelli di connessione. -
@event
disconnecting
:Emesso quandoconnection.close()
è stato eseguito. -
@event
disconnected
:Emesso dopo essere stato disconnesso dal db. -
@evento
close
:Emesso dopo ladisconnecting
eonClose
eseguito su tutti questi modelli di connessioni. -
@event
reconnected
:Emesso dopo che ci siamoconnected
e successivamentedisconnected
, seguito da un'altra connessione riuscita. -
@evento
error
:Emesso quando si verifica un errore su questa connessione. -
@event
fullsetup
:Emesso in uno scenario di set di repliche, quando sono collegati il primario e almeno uno dei secondari specificati nella stringa di connessione. -
@evento
all
:Emesso in uno scenario di set di repliche, quando tutti i nodi specificati nella stringa di connessione sono connessi.
Quando il database è inattivo, riceverai due eventi:1. disconnesso2. errore (l'errore riscontrato dal driver)
Quando il database sarà di nuovo attivo, riceverai l'evento di riconnessione.
Quindi non è necessario provare a catturare l'errore, ma dovresti ascoltare questi eventi.
Ulteriori informazioni utili sugli errori di connessione e sulla riconnessione sono disponibili qui .
Questo articolo spiega come utilizzare e configurare autoReconnect e bufferMaxEntries in base alle tue impostazioni.