使用nodejs和express,我想使用JSON返回一个或多个对象(数组)。在下面的代码中,我一次输出一个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();
}
});
});