El objeto JSON de respuesta o JSON.stringify?

Supongamos que quiero devolver contenido JSON

var content = { a: 'foo', b: 'bar' }; 

¿Cuál es la mejor práctica para devolver mis datos JSON?

A) Devolver el objeto como está; es decir, res.end(content) ?

B) JSON.stringify(content) y luego llamar a JSON.parse(content) en el cliente?

Si envía la respuesta con res.json de res.json , puede enviar el Objeto directamente como respuesta codificada de application/json .

 app.get('/route/to/ressource', function(req, res){ var oMyOBject = {any:'data'}; res.json(oMyOBject); }); 

El cliente siempre debe enviar una cadena. Eso es lo que dice el protocolo. Después de todo, HTTP es un protocolo de gran scope, y no todos los lenguajes admiten objetos JSON, y mucho menos datos de JavaScript.

Si no lo convierte a una cadena JSON, es probable que Nodo puro simplemente lo envíe como [object Object] , y estoy seguro de que esa no es su intención.

Como se mencionó anteriormente, Express le permite enviar un objeto JS real y hace la conversión de cadena JSON por usted. Alternativamente, puede convertirlo manualmente.