MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Quando o servidor mongodb está inativo, como detectar o erro ao executar a consulta do mongoose


Você está usando o mangusto, ele emite eventos (o padrão EventEmitter) quando o banco de dados está inativo e quando o banco de dados está se reconectando e reativando.

do código do mangusto encontrado aqui podemos ver que a conexão db da biblioteca - connection.js

tem os seguintes eventos que são emitidos:* @param {Mongoose} base a instância do mongoose* @inherits NodeJS EventEmitter

http://nodejs.org/api/events.html#events_class_events_eventemitter * @event connecting :Emitido quando connection.{open,openSet}() é executado nesta conexão.

  • @evento connected :Emitido quando esta conexão se conecta com sucesso ao banco de dados. Pode ser emitido vários vezes em reconnected cenários.

  • @evento open :Emitido após connected e onOpen é executado em todos esses modelos de conexões.

  • @event disconnecting :Emitido quando connection.close() foi executado.

  • @event disconnected :Emitido após ser desconectado do banco de dados.

  • @evento close :Emitido após disconnected e onClose executado em todos esses modelos de conexões.

  • @event reconnected :Emitido após connected e posteriormente disconnected , seguido por outra conexão bem-sucedida.

  • @evento error :Emitido quando ocorre um erro nesta conexão.

  • @event fullsetup :Emitido em um cenário de conjunto de réplicas, quando o primário e pelo menos um secundário especificado na cadeia de conexão estão conectados.

  • @evento all :emitido em um cenário de conjunto de réplicas, quando todos os nós especificados na cadeia de conexão estão conectados.

Quando o banco de dados estiver inativo, você receberá dois eventos:1. desconectado2. erro (o erro que o driver encontrou)

Quando o banco de dados estiver ativo novamente, você receberá o evento de reconexão.

Portanto, você não precisa tentar capturar o erro, mas deve ouvir esses eventos.

Mais informações úteis sobre falhas de conexão e reconexão podem ser encontradas aqui .

Este artigo explica como usar e configurar o autoReconnect e o bufferMaxEntries de acordo com suas configurações.