जावास्क्रिप्ट में HTTP क्लाइंट: सही तरीके से अनुरोध करना — A से Z तक
आधुनिक वेब डेवलपमेंट में, बाहरी API और सर्वर के साथ इंटरैक्शन एक बुनियादी कार्य है। चाहे वह मौसम का डेटा प्राप्त करना हो, फॉर्म सबमिट करना हो, या भुगतान गेटवे के साथ एकीकरण करना हो, आपको एक HTTP क्लाइंट की आवश्यकता होगी। इस लेख में, हम जावास्क्रिप्ट (Node.js) में HTTP अनुरोधों को सही तरीके से बनाने के तरीके पर चर्चा करेंगे: टूल चुनने से लेकर त्रुटि प्रबंधन और ऑप्टिमाइज़ेशन तक। आप सीखेंगे कि विश्वसनीय और कुशल कोड कैसे लिखें।
1. टूल का चुनाव: नेटिव क्षमताएँ बनाम लाइब्रेरी
Node.js HTTP अनुरोध करने के कई तरीके प्रदान करता है। चुनाव कार्य की जटिलता और व्यक्तिगत पसंद पर निर्भर करता है।
1.1. बिल्ट-इन मॉड्यूल http / https
यह सबसे निम्न-स्तरीय दृष्टिकोण है। यह पूर्ण नियंत्रण देता है, लेकिन सरल अनुरोधों के लिए बहुत अधिक कोड की आवश्यकता होती है।
const https = require('https');
function getUsers() { return new Promise((resolve, reject) => { const url = 'https://jsonplaceholder.typicode.com/users'; https.get(url, (res) => { let data = ''; res.on('data', chunk => data += chunk); res.on('end', () => { try { resolve(JSON.parse(data)); } catch (e) { reject(e); } }); }).on('error', reject); });}
getUsers().then(console.log).catch(console.error);1.2. ग्लोबल fetch (Node.js 18+ से)
संस्करण 18 से शुरू करके, Node.js में नेटिव fetch आया, जो ब्राउज़रों से परिचित है। यह एक आधुनिक और सुविधाजनक API है।
async function getPosts() { try { const response = await fetch('https://jsonplaceholder.typicode.com/posts'); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); return data; } catch (error) { console.error('Fetch error:', error); throw error; }}
getPosts().then(posts => console.log(posts.slice(0, 2)));1.3. लोकप्रिय लाइब्रेरी: axios
axios HTTP अनुरोधों के लिए सबसे लोकप्रिय लाइब्रेरी है। यह एक सुविधाजनक API, प्रॉमिस सपोर्ट, इंटरसेप्टर और स्वचालित JSON पार्सिंग प्रदान करता है।
const axios = require('axios');
async function createTodo() { try { const response = await axios.post('https://jsonplaceholder.typicode.com/todos', { title: 'HTTP क्लाइंट सीखें', completed: false, userId: 1 }); console.log('बनाया गया:', response.data); return response.data; } catch (error) { console.error('त्रुटि:', error.response?.data || error.message); }}
createTodo();निष्कर्ष: सरल स्क्रिप्ट के लिए fetch का उपयोग करें। कई अनुरोधों और इंटरसेप्टर वाले गंभीर प्रोजेक्ट के लिए axios का उपयोग करें। http मॉड्यूल को विशिष्ट मामलों के लिए छोड़ दें।
2. अनुरोधों के मुख्य प्रकार और डेटा के साथ कार्य करना
आइए जानें कि axios का उपयोग करके GET, POST, PUT और DELETE अनुरोधों को सही तरीके से कैसे भेजें।
2.1. GET — डेटा प्राप्त करना
async function getUser(id) { try { const { data } = await axios.get(`https://jsonplaceholder.typicode.com/users/${id}`); return data; } catch (error) { throw new Error(`उपयोगकर्ता ${id} प्राप्त करने में विफल: ${error.message}`); }}2.2. POST — संसाधन बनाना
अनुरोध के बॉडी में डेटा भेजें। कंटेंट प्रकार (Content-Type) निर्दिष्ट करना महत्वपूर्ण है। Axios JSON के लिए स्वचालित रूप से ऐसा करता है।
async function createUser(userData) { const response = await axios.post('https://jsonplaceholder.typicode.com/users', userData, { headers: { 'Content-Type': 'application/json' } }); return response.data;}2.3. PUT और PATCH — अपडेट करना
PUT प्रतिस्थापित करता है