परियोजनाओं के बैकएंड पर काम करते समय, अनुरोधों और प्रतिक्रियाओं को संभालना महत्वपूर्ण है। क्लाइंट और सर्वर के बीच सुचारू संचार के लिए इन अनुरोधों को कुशलतापूर्वक प्रबंधित करना आवश्यक है। यहां कुछ सामान्य और महत्वपूर्ण अनुरोध गुण हैं जिनसे प्रत्येक डेवलपर को परिचित होना चाहिए।
Express.js में req.ip अनुरोध ऑब्जेक्ट की एक संपत्ति है जो अनुरोध करने वाले क्लाइंट का आईपी पता प्रदान करती है। यह क्लाइंट के आईपी पते का प्रतिनिधित्व करने वाली एक स्ट्रिंग लौटाता है।
प्रॉक्सी को संभालना:
डिफ़ॉल्ट रूप से, यदि ऐप प्रॉक्सी के पीछे है, तो req.ip वास्तविक क्लाइंट के आईपी के बजाय प्रॉक्सी का आईपी लौटा सकता है। सही क्लाइंट आईपी प्राप्त करने के लिए, आप ट्रस्ट प्रॉक्सी सेट करके एक्सप्रेस को प्रॉक्सी पर भरोसा करने के लिए कॉन्फ़िगर कर सकते हैं।
app.set("trust proxy", true);
अब, req.ip प्रॉक्सी के पीछे होने पर भी क्लाइंट का सही आईपी लौटाएगा।
उदाहरण:
app.get('/', (req, res) => { console.log(req.ip); // Logs the client's IP address res.send(`Your IP address is ${req.ip}`); });
req.cookies का उपयोग करने के लिए हमें कुकी-पार्सर मिडलवेयर नामक पैकेज स्थापित करना होगा। प्रॉपर्टी का उपयोग क्लाइंट द्वारा कुकीज़ हेडर में भेजी गई कुकीज़ प्राप्त करने के लिए किया जाता है। Req.cookies में कुकीज़ अहस्ताक्षरित हैं, इसका मतलब है कि उनमें छेड़छाड़ या सत्यापन नहीं किया गया है। आप इसका उपयोग कम संवेदनशील डेटा के लिए कर सकते हैं
import cookieParser from "cookie-parser"; app.use(cookieParser()); app.get('/example', (req, res) => { console.log(req.cookies); // { cookieName: 'cookieValue' } });
req.signedCookies का उपयोग करने के लिए हमें कुकी-पार्सर मिडलवेयर नामक पैकेज इंस्टॉल करना होगा। इसमें ऐसी कुकीज़ शामिल हैं जिन्हें यह सुनिश्चित करने के लिए हस्ताक्षरित और सत्यापित किया गया है कि उनमें कोई बदलाव नहीं किया गया है। एक हस्ताक्षरित कुकीज़ को गुप्त कुंजी के साथ एन्क्रिप्ट किया जाता है। Req.signedCookies केवल वे कुकीज़ संग्रहीत करती हैं जो सत्यापन में उत्तीर्ण होती हैं।
हस्ताक्षरित कुकीज़ कैसे सेट करें:
एक हस्ताक्षरित कुकी सेट करने के लिए, आप हस्ताक्षरित: सत्य विकल्प का उपयोग कर सकते हैं:
res.cookie('signedCookieName', 'signedValue', { signed: true });
उदाहरण:
import cookieParser from "cookie-parser"; app.use(cookieParser('your-secret-key')); app.get('/example', (req, res) => { console.log(req.signedCookies); // { signedCookieName: 'signedValue' } });
Express.js में req.params एक ऑब्जेक्ट है जिसमें अनुरोध के URL से रूट पैरामीटर शामिल हैं। रूट पैरामीटर को रूट पथ में प्लेसहोल्डर नाम दिया गया है, और req.params उन प्लेसहोल्डर के लिए URL में क्लाइंट द्वारा प्रदान किए गए मानों को संग्रहीत करता है।
आप पैरामीटर नाम से पहले एक कोलन (:) का उपयोग करके पैरामीटर के साथ एक मार्ग परिभाषित कर सकते हैं।
उदाहरण:
app.get('/users/:userId', (req, res) => { console.log(req.params); // { userId: 'valueFromURL' } res.send(`User ID is ${req.params.userId}`); });
Express.js में req.query एक ऑब्जेक्ट है जिसमें अनुरोध के URL से क्वेरी स्ट्रिंग पैरामीटर शामिल हैं। क्वेरी स्ट्रिंग्स कुंजी-मूल्य जोड़े हैं जो ? के बाद आती हैं। एक यूआरएल में और सर्वर पर अतिरिक्त डेटा भेजने के लिए उपयोग किया जाता है। & का उपयोग करके अनेक प्रश्नों को पास किया जा सकता है।
उदाहरण URL:
http://example.com/search?term=flowers&sort=asc
उदाहरण:
app.get('/search', (req, res) => { console.log(req.query); // { term: 'flowers', sort: 'asc' } res.send(`Search term: ${req.query.term}, Sort order: ${req.query.sort}`); });
इसमें क्लाइंट द्वारा भेजे गए डेटा के कुंजी-मूल्य जोड़े शामिल हैं। डिफ़ॉल्ट रूप से, इसका मान अपरिभाषित है. बॉडी डेटा को बिल्ट-इन मिडलवेयर जैसे एक्सप्रेस.जेसन और यूआरएलएनकोडेड ({एक्सटेंडेड: ट्रू }), या बॉडी-पार्सर जैसे बाहरी मिडलवेयर का उपयोग करके पॉप्युलेट किया जा सकता है।
निम्नलिखित कोड आपको समझने में मदद करता है
import express from "express"; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.get("/user", (req, res) => { const user = req.body; consolo.log(user); res.send(user); })
आशा है आपको यह उपयोगी लगा होगा! लाइक करना और भविष्य के संदर्भ के लिए सेव करना न भूलें। हैप्पी कोडिंग!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3