जावास्क्रिप्ट (Node.js) के लिए HTTP-क्लाइंट: API के साथ काम करने के लिए शीर्ष लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावास्क्रिप्ट (Node.js) के लिए HTTP-क्लाइंट: नेटवर्क के साथ काम करने के लिए शीर्ष लाइब्रेरी



Node.js पर आधुनिक विकास शायद ही कभी बाहरी सेवाओं के साथ बातचीत के बिना होता है। चाहे वह REST API हो, GraphQL-एंडपॉइंट हों या डेटा स्ट्रीमिंग — आपको एक विश्वसनीय HTTP-क्लाइंट की आवश्यकता होगी। इस लेख में, हम Node.js वातावरण में HTTP अनुरोध करने के लिए सर्वश्रेष्ठ लाइब्रेरी, उनकी विशेषताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।



1. Axios — बहुमुखी विकल्प

Axios Node.js और ब्राउज़रों के लिए सबसे लोकप्रिय HTTP-क्लाइंट है। यह प्रॉमिस पर आधारित है, इंटरसेप्टर का समर्थन करता है, स्वचालित JSON रूपांतरण और अनुरोध रद्द करने की सुविधा प्रदान करता है।



स्थापना

npm install axios


GET अनुरोध का उदाहरण

const axios = require('axios');

async function getUsers() { try { const response = await axios.get('https://jsonplaceholder.typicode.com/users'); console.log(response.data); } catch (error) { console.error('त्रुटि:', error.message); }}

getUsers();


विशेषताएं:

  • अनुरोध रद्द करने के लिए CancelToken का समर्थन
  • HTTP त्रुटियों का स्वचालित प्रबंधन (स्थिति 4xx और 5xx)
  • सर्वर और ब्राउज़र दोनों पर काम करता है
  • अपलोड/डाउनलोड प्रगति का समर्थन


2. Got — प्रदर्शन और लचीलापन

Got एक हल्की और तेज़ लाइब्रेरी है, जो विशेष रूप से Node.js के लिए बनाई गई है। यह सीधे http और https मॉड्यूल का उपयोग करके समृद्ध API और उत्कृष्ट प्रदर्शन प्रदान करती है।



स्थापना

npm install got


POST अनुरोध का उदाहरण

const got = require('got');

async function createPost() { try { const response = await got.post('https://jsonplaceholder.typicode.com/posts', { json: { title: 'नया पोस्ट', body: 'पोस्ट की सामग्री', userId: 1 }, responseType: 'json' }); console.log(response.body); } catch (error) { console.error('त्रुटि:', error.message); }}

createPost();


विशेषताएं:

  • स्ट्रीम और पेजिनेशन का समर्थन
  • पुनः प्रयास (retry) के लिए अंतर्निहित समर्थन
  • कुकीज़ और कैशिंग के साथ काम
  • HTTP/2 का समर्थन (http2-wrapper के माध्यम से)


3. Node.js Fetch API — मूल मानक

Node.js 18 से शुरू होकर, Fetch API एक अंतर्निहित मॉड्यूल बन गया है (वैश्विक रूप से उपलब्ध)। यह ब्राउज़रों के समान API का कार्यान्वयन है, जो सार्वभौमिक कोड को सरल बनाता है।



उपयोग का उदाहरण

async function fetchData() {  try {    const response = await fetch('https://jsonplaceholder.typicode.com/posts/1');    if (!response.ok) throw new Error('HTTP त्रुटि: ' + response.status);    const data = await response.json();    console.log(data);  } catch (error) {    console.error('त्रुटि:', error.message);  }}

fetchData();


विशेषताएं:

  • स्थापना की आवश्यकता नहीं — Node.js 18+ में अंतर्निहित
  • मानक API, फ्रंटएंड डेवलपर्स से परिचित
  • अनुरोध रद्द करने के लिए AbortController का समर्थन
  • Axios/Got की तुलना में सीमित क्षमताएं (उदाहरण के लिए, कोई इंटरसेप्टर नहीं)


4. undici — उच्च-प्रदर्शन HTTP/1.1 क्लाइंट

undici एक तेज़, आधुनिक HTTP-क्लाइंट है, जो Node.js में अंतर्निहित Fetch का आधार है। यह अधिकतम थ्रूपुट के लिए अनुकूलित है।



स्थापना

npm install undici


अनुरोध का उदाहरण

const { request } = require('undici');

async function fetchWithUndici() { try { const { statusCode, body } = await request('https://jsonplaceholder.typicode.com/users'); const data = await body.json(); console.log('स्थिति:', statusCode); console.log('डेटा:', data); } catch (error) { console.error('त्रुटि:', error.message); }}

fetchWithUndici();


विशेषताएं:

  • बहुत उच्च प्रदर्शन और कम विलंबता
  • स्ट्रीम और पाइपलाइनिंग का समर्थन
  • Node.js Fetch API का आधार
  • उन्नत उपयोग के लिए निम्न-स्तरीय API


निष्कर्ष

HTTP-क्लाइंट का चुनाव आपके प्रोजेक्ट की आवश्यकताओं पर निर्भर करता है:

  • Axios — सादगी और बहुमुखी प्रतिभा के लिए सार्वभौमिक विकल्प
  • Got — उच्च प्रदर्शन और लचीलेपन की आवश्यकता वाली परियोजनाओं के लिए
  • Fetch API — यदि आप मानक API और न्यूनतम निर्भरता पसंद करते हैं
  • undici — अधिकतम प्रदर्शन और संसाधन दक्षता के लिए

प्रत्येक लाइब्रेरी के अपने फायदे हैं, और चुनाव आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है। हमें उम्मीद है कि इस लेख ने आपको सही HTTP-क्लाइंट चुनने में मदद की है!

अनुशंसाएँ