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

Quando il server mongodb è inattivo come catturare l'errore durante l'esecuzione di query mongoose

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 in reconnected scenari.

  • @evento open :Emesso dopo che ci siamo connected e onOpen viene eseguito su tutti questi modelli di connessione.

  • @event disconnecting :Emesso quando connection.close() è stato eseguito.

  • @event disconnected :Emesso dopo essere stato disconnesso dal db.

  • @evento close :Emesso dopo la disconnecting e onClose eseguito su tutti questi modelli di connessioni.

  • @event reconnected :Emesso dopo che ci siamo connected e successivamente disconnected , 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.