nodejsとexpressを使用して、JSONを使用して1つまたは複数のオブジェクト(配列)を返したいと思います。以下のコードでは、一度に1つのJSONオブジェクトを出力します。それは動作しますが、これは私が欲しいものではありません。多くのオブジェクトがあるので、生成されるレスポンスは有効なJSONレスポンスではありません。Node.jsを使用して複雑な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();
}
});
});
明示なしでそれを行う方法? – Piotrek
@ Ludwik11 'res.write(JSON.stringify(foo))'です。 'foo'が大きければ、それを切り詰める(文字列化し、一度にチャンクを書く)必要があるかもしれません。おそらく、あなたのヘッダーの '' Content-Type ': "application/json"というようにしたいと思うかもしれません。 – OJFord