Używając nodejs i express, chciałbym zwrócić jeden lub wiele obiektów (tablic) za pomocą JSON. W poniższym kodzie wyświetlam po jednym obiekcie JSON na raz. Działa, ale to nie jest dokładnie to, czego chcę. Utworzona odpowiedź nie jest prawidłową odpowiedzią JSON, ponieważ mam wiele obiektów.
Zdaję sobie sprawę, że mógłbym po prostu dodać wszystkie obiekty do tablicy i zwrócić tę konkretną tablicę w res.end. Jednak obawiam się, że może to być trudne do przetworzenia i intensywnie korzystające z pamięci.
Jaki jest właściwy sposób na osiągnięcie tego z nodejs? Czy query.each jest właściwą metodą wywołania?
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();
}
});
});