tutorial significado backbone backbone.js

significado - Backbone.js Manejo de errores-¿cómo lo haces?



backbone js tutorial (2)

Cambiamos a devolver el formato estándar JSend un tiempo. Básicamente es solo un contenedor JSON alrededor de la respuesta que tiene disposiciones para que los mensajes y códigos de error vuelvan a aparecer, además de los datos que esperas.

La razón principal por la que tuvimos que hacerlo fue porque teníamos servicios que respondían con 400 errores cuando en realidad no era lo apropiado. El cliente no tenía ninguna sintaxis mal formada o ningún error de nivel de protocolo, solo había algún problema con algo en el que necesitábamos una respuesta más matizada y eso nos la dio. Después de hacerlo, todos terminaron mucho más contentos tanto en el lado del cliente como del servidor.

Me pregunto cómo las personas suelen hacer un manejo de errores con backbone.js. Sería bueno que algo aparezca cada vez que llamo a model.save (que a su vez llama a Backbone.sync). El asunto es, ¿cómo sabe backbone.js cuándo se ha producido un error o un éxito en el servidor? Entiendo que sabría si hubo un error de 500 servidores o algo así (que jquery conoce porque Backbone.sync llama a jQuery.ajax), pero quiero poder pasar mensajes y otros códigos para poder dar un error más significativo. mensajes para el usuario.

Tengo una idea y me encantaría recibir algunos comentarios. La idea es anular Backbone.sync. La nueva sincronización obtiene una respuesta del servidor, que debe estar en un formato particular. Este formato sería algo así como:

ServerResponseObject: > ResponseCode > Message > Model

No es nada lujoso, pero básicamente, en lugar de simplemente devolver el modelo simple, está envuelto con un ResponseCode y un Message que se pueden mostrar al usuario.

¿Es esta la manera normal de hacerlo? ¿Algún otro enfoque que sea mejor?

¡Gracias!


En mis oídos, esto suena un poco complejo, al menos para empezar. Backbone.sync ya informará los errores que puedes detectar en el método de tus modelos .save() :

this.mymodel.save(/* ... */, {success: function(model, result, xhr)..., error: function(model, xhr, options)...}

( docs )

Si su servidor sigue HTTP specs HTTP , el código de error ya está proporcionado ( 500 - error del servidor, 404 - modelo no encontrado, ya sabe ...), e incluso si el servidor envía un código de error, puede enviar contenido (perfecto para su mensaje). Entonces, básicamente ya tiene todos los parámetros integrados en el protocolo HTTP . Según mi experiencia, puedes escribir menos código si trabajas con el protocolo en lugar de crear nuevas capas encima.

En la devolución de llamada de error anterior, es probable que tenga buenas posibilidades para llamar al resto de su sistema y publicar un error en algún bus de mensajes de la aplicación o similar (a través del propio mecanismo de evento Backbones o alguna library dedicated ).