nodejsとexpressを使用して、JSONを使用して1つまたは複数のオブジェクト(配列)を返したいと思います。以下のコードでは、一度に1つのJSONオブジェクトを出力します。それは機能しますが、これは私が望んでいるものではありません。多くのオブジェクトがあるため、生成された応答は有効なJSON応答ではありません。
すべてのオブジェクトを配列に追加して、その特定の配列をres.endに返すことができることはよく知っています。ただし、これは処理が重くなり、メモリを大量に消費する可能性があると思います。
nodejsでこれを達成するための適切な方法は何ですか?query.eachは呼び出すのに適切なメソッドですか?
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();
}
});
});