Node.js
Errores y confiabilidad en Node.js
Estrategias para modelar, propagar y observar errores en Node.js, diferenciar fallos operacionales y de programación y evitar estados inconsistentes.
- Última actualización
- Actualizada
- Nivel
- Aplicación
Node.js
Estrategias para modelar, propagar y observar errores en Node.js, diferenciar fallos operacionales y de programación y evitar estados inconsistentes.
Un error operacional puede manejarse localmente; uno de programación suele requerir corregir código y posiblemente reiniciar el proceso.
Node combina excepciones síncronas, Promises rechazadas, callbacks error-first y eventos error.
function readConfig(callback) {
readFile("config.json", (error, data) => {
if (error) return callback(error);
callback(null, data);
});
}No mezcles contratos sin una frontera clara.
try {
await loadRemoteConfig();
} catch (cause) {
throw new Error("Could not load configuration", { cause });
}Añade contexto sin destruir la causa original.
Reintenta solo fallos transitorios y operaciones idempotentes. Usa backoff exponencial, jitter y un límite total.
intento → espera creciente + jitter → nuevo intentoToda llamada remota necesita presupuesto de tiempo. Propaga AbortSignal para cancelar trabajo descendente.
const resource = await acquire();
try {
await use(resource);
} finally {
await resource.close();
}finally protege cleanup, no corrige el error original.
A nivel conceptual evita enviar trabajo repetidamente a una dependencia claramente degradada. No reemplaza timeouts, retries limitados ni observabilidad.
Continúa cuando conoces el estado y existe una respuesta segura. Reinicia cuando un error no controlado puede haber roto invariants globales.
uncaughtException.Child processes separa trabajo y ejecuta otros programas.