Düğüm ve ifade kullanarak, JSON kullanarak bir veya daha çok nesneyi (dizi) döndürmek istiyorum. Aşağıdaki kodda bir seferde bir JSON nesnesini çıkardım. İşe yarıyor ama bu tam olarak istediğim şey değil. Üretilen yanıt, birçok nesneye sahip olduğumdan geçerli bir JSON yanıtı değil.Node.js ile karmaşık bir JSON yanıtı nasıl verilir?
Tüm nesneleri bir diziye ekleyebileceğimi ve belirli diziyi res.end'e döndürebileceğimin farkındayım. Ancak korkarım ki bu işlem yoğunlaşabilir ve hafızada yoğun olabilir.
Bunu nodejs ile elde etmenin doğru yolu nedir? Query.aracı aramak için doğru yöntem mi?
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();
}
});
});
Bunu ifade etmeksizin nasıl yapmalı? – Piotrek
@ Ludwik11 'res.write (JSON.stringify (foo))'. Eğer 'foo' büyükse, onu doğramak zorunda kalabilirsiniz (stringify, sonra bir kerede chunk yazın). Muhtemelen ayrıca "İçerik-Türü" başlığınızı da görmek istersiniz: "uygulama/json" veya uygun şekilde benzer. – OJFord