Tengo una aplicación MERN y estoy haciendo llamadas API en la interfaz usando axios .
Por ejemplo:
// user is an object with properties email and password const res = await axiosInstance.post("/admin/sign-in", { email: user.email, password: user.password, });
Si la llamada a la API falla (por el motivo que sea), aparece un error, por lo que es una buena idea realizar siempre las llamadas a la API en un bloque de prueba y captura. Si no, ¿cuál es la forma recomendada de hacerlo? Sé que es posible verificar el estado de la respuesta, pero ¿es una práctica incorrecta usar try-catch? La verificación de estado no funciona en caso de que el servidor esté inactivo.
try { const res = await axiosInstance.post("/admin/sign-in", { email: user.email, password: user.password, }); } catch (error) { console.log(error); }
Del mismo modo, en el lado del back-end, ¿debería manejar todas las solicitudes y respuestas en un bloque de prueba y captura para que un token JSON extraviado accidentalmente (o deliberadamente 😉) en la solicitud no cause un error que apague el servidor?
Gracias.
Prefiero arrojar errores escritos de mis controladores y no atraparlos allí; O un error interno del sistema o un error de API con un mensaje para el cliente.
Luego capturo el error más arriba en la pila, en el controlador de errores predeterminado, envío un mensaje API al usuario y/o registro el mensaje del sistema internamente para errores internos, según el tipo de error. De esta manera, también puedo detectar todos los errores, eliminando el código repetitivo.
Esto también me permite consolidar y controlar lo que se envía al cliente.