Saltar al contenido

Diferencia entre res.send y res.json en Express.js

Ten en cuenta que en las ciencias cualquier problema casi siempere puede tener diversas soluciones, de igual modo nosotros mostramos lo más óptimo y mejor.

Solución:

Los métodos son idénticos cuando un objeto o array se pasa, pero res.json() también convertirá no objetos, como null y undefinedque no son JSON válidos.

El método también utiliza el json replacer y json spaces configuración de la aplicación, para que pueda formatear JSON con más opciones. Esas opciones se configuran así:

app.set('json spaces', 2);
app.set('json replacer', replacer);

Y pasó a un JSON.stringify() al igual que:

JSON.stringify(value, replacer, spacing);
// value: object to format
// replacer: rules for transforming properties encountered during stringifying
// spacing: the number of spaces for indentation

Este es el código en el res.json() método que el método de envío no tiene:

var app = this.app;
var replacer = app.get('json replacer');
var spaces = app.get('json spaces');
var body = JSON.stringify(obj, replacer, spaces);

El método termina como un res.send() en el final:

this.charset = this.charset || 'utf-8';
this.get('Content-Type') || this.set('Content-Type', 'application/json');

return this.send(body);

https://github.com/visionmedia/express/blob/ee228f7aea6448cf85cc052697f8d831dce785d5/lib/response.js#L174

res.json eventualmente llama res.sendpero antes de eso:

  • respeta el json spaces y json replacer Ajustes de Aplicacion
  • asegura que la respuesta tendrá un juego de caracteres utf8 y un tipo de contenido de aplicación/json

Mirando en los encabezados enviados…
res.send utiliza tipo de contenido:texto/html
res.json utiliza tipo de contenido: aplicación/json

editar: enviar en realidad cambia lo que se envía en función de lo que se proporciona, por lo que las cadenas se envían como texto/html, pero si le pasa un objeto, emite application/json.

Valoraciones y reseñas

Recuerda difundir este artículo si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *