नोडजेस और एक्सप्रेस का उपयोग करके, मैं JSON का उपयोग कर एक या एकाधिक ऑब्जेक्ट (सरणी) वापस करना चाहता हूं। नीचे दिए गए कोड में मैं एक समय में एक JSON ऑब्जेक्ट आउटपुट करता हूं। यह काम करता है लेकिन यह वही नहीं है जो मैं चाहता हूं। उत्पादित प्रतिक्रिया वैध JSON प्रतिक्रिया नहीं है क्योंकि मेरे पास कई ऑब्जेक्ट्स हैं।Node.js के साथ एक जटिल JSON प्रतिक्रिया कैसे वापस करें?
मुझे अच्छी तरह पता है कि मैं बस सभी ऑब्जेक्ट्स को सरणी में जोड़ सकता हूं और res.end में उस विशिष्ट सरणी को वापस कर सकता हूं। हालांकि मुझे डर है कि यह प्रक्रिया और गहन स्मृति के लिए भारी हो सकता है।
नोडजेस के साथ इसे स्वीकार करने का उचित तरीका क्या है? पूछताछ है। कॉल करने के लिए सही तरीका है?
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
@ लुडविक 11 'res.write (JSON.stringify (foo)) '। यदि 'foo' बड़ा है तो आपको इसे काटने की आवश्यकता हो सकती है (स्ट्रिंग करें, फिर एक समय में खंड लिखें)। शायद आपके हेडर को "सामग्री-प्रकार": "एप्लिकेशन/जेसन" या उपयुक्त के रूप में भी देखना चाहते हैं। – OJFord