मैं एक शुरुआत में Express.js
हूं और मैं इन दो खोजशब्दों द्वारा भ्रमित हूँ: res.end()
और res.send()
।
क्या वे एक ही हैं या अलग हैं?
मैं एक शुरुआत में Express.js
हूं और मैं इन दो खोजशब्दों द्वारा भ्रमित हूँ: res.end()
और res.send()
।
क्या वे एक ही हैं या अलग हैं?
जवाबों:
res.send()
HTTP प्रतिसाद भेजेंगे। इसका सिंटैक्स है,
res.send([body])
बॉडी पैरामीटर एक बफर ऑब्जेक्ट, एक स्ट्रिंग, एक ऑब्जेक्ट या एक ऐरे हो सकता है। उदाहरण के लिए:
res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('<p>some html</p>');
res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });
देखें इसअधिक जानकारी के लिए ।
res.end()
प्रतिक्रिया प्रक्रिया को समाप्त करेगा। यह विधि वास्तव में नोड कोर से आती है, विशेष रूप से की response.end()
विधि http.ServerResponse
। इसका उपयोग बिना किसी डेटा के प्रतिक्रिया को जल्दी समाप्त करने के लिए किया जाता है। उदाहरण के लिए:
res.end();
res.status(404).end();
अधिक जानकारी के लिए इसे पढ़ें ।
express
लेकिन शीर्षक से सोचा - कोई कुछ भेजता है, कोई कुछ समाप्त करता है .... 'ठीक है।
res.send()
कुछ नहीं के साथ उपयोग करें । क्या यह अधिनियम पसंद करता है res.end()
?
मैं बीच कुछ मुख्य अंतर पर थोड़ा और अधिक जोर करना चाहते हैं res.end()
और res.send()
प्रतिक्रिया हेडर के संबंध में और क्यों वे महत्वपूर्ण हैं के साथ।
1. res.send () आपके आउटपुट की संरचना की जांच करेगा और हेडर जानकारी को तदनुसार सेट करेगा।
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
app.get('/',(req,res)=>{
res.send({msg:'hello'});
});
जहाँ Res.end () के साथ आप केवल पाठ के साथ उत्तर दे सकते हैं और यह " सामग्री-प्रकार " सेट नहीं करेगा
app.get('/',(req,res)=>{
res.end('<b>hello</b>');
});
2. res.send () प्रतिक्रिया शीर्षक में "ETag" विशेषता सेट करेगा
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
Tag यह टैग महत्वपूर्ण क्यों है?
ETag HTTP प्रतिक्रिया हेडर एक संसाधन के विशिष्ट संस्करण के लिए एक पहचानकर्ता है। यह कैश को अधिक कुशल बनाने की अनुमति देता है, और बैंडविड्थ को बचाता है, क्योंकि वेब सर्वर को सामग्री को नहीं बदलने पर पूर्ण प्रतिक्रिया भेजने की आवश्यकता नहीं है।
res.end()
इस शीर्ष लेख विशेषता को सेट नहीं किया जाएगा
res.send () क्या करता है, res.write , res.setHeaders और res.end लागू करना है ।
यह जाँच करें कि आप क्या डेटा भेजते हैं और सही हेडर सेट करते हैं,
फिर इसके डेटा को res.write के साथ स्ट्रीम करें, और अंत में यह अनुरोध के अंत को सेट करने के लिए res.end का उपयोग करता है।
कुछ मामले हैं जो आप इसे स्वयं करना चाहते हैं उदाहरण के लिए यदि आप स्ट्रीम फ़ाइल या एक बड़ा डेटा सेट चाहते हैं, तो इस मामले में आप स्वयं द्वारा हेडर सेट करना चाहते हैं और स्ट्रीम रखने के लिए res.write का उपयोग करेंगे। बहे।
res.end
है कि सादा नोड द्वारा उपयोग किया जाता है, जहांres.send
एक्सप्रेस