Node.js で複雑な JSON レスポンスを返すにはどうすればいいですか? 質問する

Node.js で複雑な JSON レスポンスを返すにはどうすればいいですか? 質問する

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();
        }
    });
});

ベストアンサー1

express 3ではres.json({foo:bar})を直接使用できます。

res.json({ msgId: msg.fileName })

を参照してくださいドキュメンテーション

おすすめ記事