Usando Node.js, tengo un formulario que usa twilio para enviar un SMS. Todo funciona bien probándolo con mi teléfono.
Sin embargo, me gustaría tener una reproducción de animación (en mi archivo JS front-end) si el envío del formulario encuentra un error en el back-end. Específicamente, la API de twilio tiene una devolución de llamada que toma un error como argumento con la función sendMessage. Así que no estoy hablando de errores de validación, sino de errores reales con twilio o la conexión.
Entonces, ¿cómo tengo un detector de eventos en mis archivos js front-end para escuchar cuando hay un error en la función de devolución de llamada al enviar el formulario (en el back-end) para poder reproducir una animación que expresa que algo salió mal?
¿O no debería usar detectores de eventos y hacerlo de otra manera?
Cualquier ayuda apreciada. Por favor responde. ¡Gracias!
No, no puede agregar un detector de eventos en el front-end para un error en el back-end. Eso no es posible.
Si usa un formulario HTML sin AJAX:
Ahora está utilizando el formulario HTML predeterminado y los atributos de acción y método para enviar los datos del formulario. Entonces el proceso será similar a lo que hace con el manejo de errores. Envía los datos y luego continúa con su interacción con la API de Twillo. Si algo falla, redirige al usuario a la página del formulario con el mensaje de error/animación de error.
Si usa AJAX:
Ahora que está utilizando AJAX, debe tener la capacidad de manejar la respuesta que obtiene del servidor. En este proceso, cuando el usuario envía datos, el back-end continúa con la interacción con la API de Twillo. Si algo falla, devuelve un 500 Internal Server Error con el mensaje de error adecuado. En la devolución de llamada de solicitud de AJAX, verifica el código de respuesta y el mensaje de error. Si algo está mal, ahora puede reproducir la animación de error/informar al usuario sobre lo que sucedió.
Recursos: https://nodejs.org/api/synopsis.html Consulte el ejemplo en este enlace. Se muestra cómo configurar el statuscode de estado para la respuesta.