Използвате mongoose, той излъчва събития (моделът EventEmitter), когато базата данни не работи и когато базата данни се свързва отново и се активира отново.
от код на mongoose, намерен тук можем да видим, че връзката db на библиотеката - connection.js
има следните събития, които се излъчват:* @param {Mongoose} базира екземпляр на mongoose* @inherits NodeJS EventEmitter
http://nodejs.org/api/events.html#events_class_events_eventemitter
* @event connecting
:Излъчва се при connection.{open,openSet}()
се изпълнява на тази връзка.
-
@event
connected
:Излъчва се, когато тази връзка се свърже успешно с db. Може да се излъчва многократно пъти вreconnected
сценарии. -
@event
open
:Излъчено, след катоconnected
иonOpen
се изпълнява на всички тези модели връзки. -
@event
disconnecting
:Излъчва се приconnection.close()
беше изпълнено. -
@event
disconnected
:Излъчва се след прекъсване на връзката с базата данни. -
@event
close
:Излъчено, след катоdisconnected
иonClose
се изпълнява на всички тези модели на връзки. -
@event
reconnected
:Излъчено, след катоconnected
и впоследствиеdisconnected
, последвано от успешно друга успешна връзка. -
@event
error
:Излъчва се, когато възникне грешка в тази връзка. -
@event
fullsetup
:Излъчва се в сценарий с набор от реплики, когато основният и поне един вторичен модул, посочени в низа за връзка, са свързани. -
@event
all
:Излъчва се в сценарий с набор от реплики, когато всички възли, посочени в низа за връзка, са свързани.
Когато базата данни не работи, ще получите две събития:1. изключен2. грешка (грешката, открита от драйвера)
Когато базата данни е готова отново, ще получите събитието за повторно свързване.
Така че не е нужно да се опитвате да уловите грешката, а трябва да слушате тези събития.
Повече полезна информация за неуспешно свързване и повторно свързване можете да намерите тук .
Тази статия обяснява как да използвате и конфигурирате autoReconnect и bufferMaxEntries според вашите настройки.