जैसा कि दोनों के बीच वास्तविक अंतर है res.sendऔर res.jsonग्राहक के जवाब का एक ही संचालन करता है।
जैसा कि दोनों के बीच वास्तविक अंतर है res.sendऔर res.jsonग्राहक के जवाब का एक ही संचालन करता है।
जवाबों:
जब वस्तु या सरणी पास हो जाती है तो विधियां समान होती हैं, लेकिन res.json()गैर-ऑब्जेक्ट्स, जैसे nullऔर undefined, जो मान्य JSON नहीं हैं, को भी रूपांतरित करेंगी ।
विधि भी json replacerऔर json spacesअनुप्रयोग सेटिंग्स का उपयोग करती है , इसलिए आप JSON को अधिक विकल्पों के साथ प्रारूपित कर सकते हैं। वे विकल्प इस प्रकार सेट होते हैं:
app.set('json spaces', 2);
app.set('json replacer', replacer);
और इस JSON.stringify()तरह से पास हुआ:
JSON.stringify(value, replacer, spacing);
// value: object to format
// replacer: rules for transforming properties encountered during stringifying
// spacing: the number of spaces for indentation
यह उस res.json()विधि का कोड है जिसमें भेजने की विधि नहीं है:
var app = this.app;
var replacer = app.get('json replacer');
var spaces = app.get('json spaces');
var body = JSON.stringify(obj, replacer, spaces);
विधि अंत में एक के रूप res.send()में समाप्त होती है:
this.charset = this.charset || 'utf-8';
this.get('Content-Type') || this.set('Content-Type', 'application/json');
return this.send(body);
res.jsonअंततः कॉल करता है res.send, लेकिन इससे पहले:
json spacesऔर json replacerएप्लिकेशन सेटिंग्स का सम्मान करता हैभेजे गए हेडर में देख रहे हैं ...
res.send सामग्री-प्रकार का उपयोग करता है: पाठ / html
res.json सामग्री-प्रकार का उपयोग करता है: आवेदन / ईमेल
res.jsonJSON के तर्क को बल देता है। res.sendएक गैर- json ऑब्जेक्ट या सरणी ले जाएगा और दूसरा प्रकार भेजेगा। उदाहरण के लिए:
यह एक JSON नंबर लौटाएगा।
res.json(100)
यह एक स्थिति कोड लौटाएगा और सेंडस्टैटस का उपयोग करने के लिए चेतावनी जारी करेगा।
res.send(100)
यदि आपका तर्क JSON ऑब्जेक्ट या सरणी (अशक्त, अपरिभाषित, बूलियन, स्ट्रिंग) नहीं है, और आप यह सुनिश्चित करना चाहते हैं कि इसे JSON, उपयोग के रूप में भेजा गया है res.json।