Hay 2 tipos distintos de errores de conexión cuando se utiliza el controlador MongoDB:
- Errores durante la conexión inicial
- Errores después de establecer la conexión inicial
El evento 'error' se usa para manejar (2). Parece que está buscando la forma correcta de manejar los errores de conexión iniciales. Para esos, debe pasar una devolución de llamada a connect()
o .catch()
con la promesa de que connect()
regresa.
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;
}
}