tutorial node how javascript node.js http express

javascript - node - Diferencia entre res.send y res.json en Express.js



node express tutorial (3)

Buscando en los encabezados enviados ...
res.send usa content-type: text / html
res.json usa content-type: application / json

¿Cuál es la diferencia real entre res.send y res.json ya que ambos parecen realizar la misma operación de responder al cliente.


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

El método también usa los ajustes de la aplicación json replacer y json spaces , por lo que puede formatear JSON con más opciones. Esas opciones se establecen así:

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

Y pasó a un JSON.stringify() como ese:

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 método res.json() 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 res.send() al final:

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