Usando nodejs y express, me gustaría devolver uno o varios objetos (matriz) usando JSON. En el siguiente código, publico un objeto JSON a la vez. Funciona, pero esto no es exactamente lo que quiero. La respuesta producida no es una respuesta JSON válida ya que tengo muchos objetos.¿Cómo devolver una respuesta JSON compleja con Node.js?
Soy consciente de que simplemente podría agregar todos los objetos a una matriz y devolver esa matriz específica en res.end. Sin embargo, me temo que esto puede ser pesado para procesar y memoria intensiva.
¿Cuál es la forma correcta de lograr esto con nodejs? ¿Es query.each el método correcto para llamar?
app.get('/users/:email/messages/unread', function(req, res, next) {
var query = MessageInfo
.find({ $and: [ { 'email': req.params.email }, { 'hasBeenRead': false } ] });
res.writeHead(200, { 'Content-Type': 'application/json' });
query.each(function(err, msg) {
if (msg) {
res.write(JSON.stringify({ msgId: msg.fileName }));
} else {
res.end();
}
});
});
¿cómo hacer eso sin expresar? – Piotrek
@ Ludwik11 'res.write (JSON.stringify (foo))'. Si 'foo' es grande, es posible que tenga que cortarlo (stringify, luego escriba trozo a la vez). Probablemente también quiera ver su encabezado '" Content-Type ":" application/json "' o similar, según corresponda. – OJFord