Existem 2 tipos distintos de erros de conexão ao usar o driver MongoDB:
- Erros durante a conexão inicial
- Erros após o estabelecimento da conexão inicial
O evento 'error' é usado para manipular (2). Parece que você está procurando a maneira correta de lidar com erros de conexão iniciais. Para isso, você deve passar um retorno de chamada para
connect()
ou .catch()
na promessa de que connect()
retorna. const NUM_RETRIES = 3;
const delay = 1000;
let error = null;
for (let i = 0; i < NUM_RETRIES; ++i) {
if (i > 0) {
await new Promise(resolve => setTimeout(resolve, i * delay));
}
try {
await mdb.MongoClient.connect(uri);
break;
} catch (err) {
error = err;
}
}