नोड्ज और एक्सप्रेस का उपयोग करते हुए, मैं JSON का उपयोग करके एक या कई ऑब्जेक्ट (सरणी) वापस करना चाहूंगा। नीचे दिए गए कोड में मैं एक समय में एक JSON ऑब्जेक्ट आउटपुट करता हूं। यह काम करता है, लेकिन यह बिल्कुल वैसा नहीं है जैसा मैं चाहता हूं। उत्पादित प्रतिक्रिया एक वैध JSON प्रतिक्रिया नहीं है क्योंकि मेरे पास कई ऑब्जेक्ट हैं।
मैं अच्छी तरह से जानता हूं कि मैं सभी वस्तुओं को एक सरणी में जोड़ सकता हूं और उस विशिष्ट सरणी को res.end में वापस कर सकता हूं। हालाँकि मुझे डर है कि यह भारी प्रक्रिया और स्मृति गहन हो सकता है।
नोडज के साथ इसे हासिल करने का उचित तरीका क्या है? क्या 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();
}
});
});