Mit nodejs und express möchte ich ein oder mehrere Objekte (Array) mit JSON zurückgeben. Im folgenden Code gebe ich jeweils ein JSON-Objekt aus. Es funktioniert, aber das ist nicht genau das, was ich will. Die erzeugte Antwort ist keine gültige JSON-Antwort, da ich viele Objekte habe.
Mir ist klar, dass ich einfach alle Objekte zu einem Array hinzufügen und dieses bestimmte Array in res.end zurückgeben kann. Ich befürchte jedoch, dass dies schwer zu verarbeiten und speicherintensiv werden könnte.
Was ist der richtige Weg, um dies mit nodejs zu erreichen? Ist query.each die richtige Methode zum Aufrufen?
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();
}
});
});