MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wenn der Mongodb-Server ausgefallen ist, wie man den Fehler beim Ausführen der Mongoose-Abfrage abfängt

Sie verwenden Mongoose, es gibt Ereignisse (das EventEmitter-Muster) aus, wenn die Datenbank heruntergefahren ist und wenn die Datenbank die Verbindung wieder herstellt und wieder hochfährt.

aus dem Mongoose-Code, den Sie hier finden Wir können sehen, dass die DB-Verbindung der Bibliothek - connection.js

hat die folgenden Ereignisse, die ausgegeben werden:* @param {Mongoose} Basis einer Mungo-Instanz* @inherits NodeJS EventEmitter

http://nodejs.org/api/events.html#events_class_events_eventemitter * @event connecting :Wird ausgegeben, wenn connection.{open,openSet}() wird auf dieser Verbindung ausgeführt.

  • @event connected :Wird ausgegeben, wenn diese Verbindung erfolgreich eine Verbindung zur Datenbank herstellt. Darf mehrfach ausgegeben werden mal in reconnected Szenarien.

  • @event open :Wird ausgegeben, nachdem wir uns connected haben und onOpen wird auf allen diesen Verbindungsmodellen ausgeführt.

  • @event disconnecting :Wird ausgegeben, wenn connection.close() wurde hingerichtet.

  • @event disconnected :Wird ausgegeben, nachdem die Verbindung zur Datenbank getrennt wurde.

  • @event close :Wird ausgegeben, nachdem wir disconnected haben und onClose auf allen diesen Verbindungsmodellen ausgeführt.

  • @event reconnected :Wird ausgegeben, nachdem wir uns connected haben und anschließend disconnected , gefolgt von erfolgreich eine weitere erfolgreiche Verbindung.

  • @event error :Wird ausgegeben, wenn bei dieser Verbindung ein Fehler auftritt.

  • @event fullsetup :Wird in einem Replica-Set-Szenario ausgegeben, wenn primäre und mindestens eine sekundäre Verbindung, die in der Verbindungszeichenfolge angegeben sind, verbunden sind.

  • @event all :Wird in einem Replica-Set-Szenario ausgegeben, wenn alle in der Verbindungszeichenfolge angegebenen Knoten verbunden sind.

Wenn die Datenbank heruntergefahren ist, erhalten Sie zwei Ereignisse:1. getrennt2. error (der Fehler, auf den der Treiber gestoßen ist)

Wenn die Datenbank wieder hochgefahren ist, erhalten Sie das Reconnect-Ereignis.

Sie müssen also nicht versuchen, den Fehler abzufangen, sondern sollten sich diese Ereignisse anhören.

Weitere hilfreiche Informationen zu Verbindungsabbrüchen und Wiederverbindung finden Sie hier .

Dieser Artikel erklärt, wie Sie autoReconnect und die bufferMaxEntries gemäß Ihren Einstellungen verwenden und konfigurieren.