जैसा कि दोनों के बीच वास्तविक अंतर है 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.json
JSON के तर्क को बल देता है। res.send
एक गैर- json ऑब्जेक्ट या सरणी ले जाएगा और दूसरा प्रकार भेजेगा। उदाहरण के लिए:
यह एक JSON नंबर लौटाएगा।
res.json(100)
यह एक स्थिति कोड लौटाएगा और सेंडस्टैटस का उपयोग करने के लिए चेतावनी जारी करेगा।
res.send(100)
यदि आपका तर्क JSON ऑब्जेक्ट या सरणी (अशक्त, अपरिभाषित, बूलियन, स्ट्रिंग) नहीं है, और आप यह सुनिश्चित करना चाहते हैं कि इसे JSON, उपयोग के रूप में भेजा गया है res.json
।