Está utilizando mongoose, emite eventos (el patrón EventEmitter) cuando la base de datos está inactiva y cuando la base de datos se vuelve a conectar y vuelve a funcionar.
del código de mangosta encontrado aquí podemos ver que la conexión de la base de datos de la biblioteca - connection.js
tiene los siguientes eventos que se emiten:* @param {Mongoose} basa una instancia de mongoose* @inherits NodeJS EventEmitter
http://nodejs.org/api/events.html#events_class_events_eventemitter
* @event connecting
:Emitido cuando connection.{open,openSet}()
se ejecuta en esta conexión.
-
@event
connected
:se emite cuando esta conexión se conecta correctamente a la base de datos. Se pueden emitir múltiples veces enreconnected
escenarios. -
@event
open
:Emitido después de queconnected
yonOpen
se ejecuta en todos estos modelos de conexiones. -
@event
disconnecting
:Emitido cuandoconnection.close()
fue ejecutado. -
@event
disconnected
:Emitido después de desconectarse de la base de datos. -
@event
close
:Emitido después de quedisconnected
yonClose
ejecutado en todos estos modelos de conexiones. -
@event
reconnected
:Emitido después de queconnected
y posteriormentedisconnected
, seguido de otra conexión exitosa. -
@event
error
:Emitido cuando ocurre un error en esta conexión. -
@event
fullsetup
:Emitido en un escenario de conjunto de réplicas, cuando el primario y al menos un secundario especificado en la cadena de conexión están conectados. -
@event
all
:emitido en un escenario de conjunto de réplicas, cuando todos los nodos especificados en la cadena de conexión están conectados.
Cuando la base de datos esté inactiva, recibirá dos eventos:1. desconectado2. error (el error que encontró el controlador)
Cuando la base de datos vuelva a estar activa, recibirá el evento de reconexión.
Por lo tanto, no es necesario que intente detectar el error, sino que debe escuchar estos eventos.
Se puede encontrar más información útil sobre fallas de conexión y reconexión aquí .
Este artículo explica cómo usar y configurar autoReconnect y bufferMaxEntries según su configuración.