使用nodejs和express,我想使用JSON返回一個或多個對象(數組)。在下面的代碼中,我一次輸出一個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 2014-04-28 18:11:31
@ Ludwik11'res.write(JSON.stringify(foo))'。如果'foo'很大,你可能需要將它切分(串化,然後一次寫入塊)。可能還需要選擇你的頭文件「Content-Type」:「application/json」或類似的。 – OJFord 2015-08-12 09:30:42