sql >> Base de Datos >  >> NoSQL >> MongoDB

Cuando el servidor mongodb está inactivo, cómo detectar el error al ejecutar la consulta mongoose

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 en reconnected escenarios.

  • @event open :Emitido después de que connected y onOpen se ejecuta en todos estos modelos de conexiones.

  • @event disconnecting :Emitido cuando connection.close() fue ejecutado.

  • @event disconnected :Emitido después de desconectarse de la base de datos.

  • @event close :Emitido después de que disconnected y onClose ejecutado en todos estos modelos de conexiones.

  • @event reconnected :Emitido después de que connected y posteriormente disconnected , 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.