Използвате mongoose, той излъчва събития (моделът EventEmitter), когато базата данни не работи и когато базата данни се свързва отново и се активира отново.
от код на mongoose, намерен тук можем да видим, че връзката db на библиотеката - connection.js
има следните събития, които се излъчват:* @param {Mongoose} базира екземпляр на mongoose* @inherits NodeJS EventEmitter
https://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 според вашите настройки.