عميل HTTP لجافا سكريبت (Node.js): أفضل المكتبات لعام 2025

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

عميل HTTP لجافا سكريبت (Node.js): أفضل المكتبات



في تطوير الويب الحديث باستخدام Node.js، يعد إرسال طلبات HTTP من أكثر العمليات شيوعًا. الوحدات المدمجة http و https منخفضة المستوى جدًا، لذلك أنشأ المجتمع العديد من المكتبات الملائمة. في هذه المقالة، سنستعرض أربعة من أفضل عملاء HTTP لـ Node.js في عام 2025: Axios، Got، SuperAgent و Node Fetch. ستتعرف على ميزاتها ونقاط قوتها وستحصل على أمثلة جاهزة للكود.



1. Axios — المعيار العالمي



Axios هو عميل HTTP الأكثر شيوعًا لجافا سكريبت. يعمل في كل من المتصفح و Node.js. المزايا الرئيسية: دعم الـ Promises، التحويل التلقائي لـ JSON، اعتراضات الطلبات/الاستجابات وحماية مدمجة من XSRF.



const axios = require('axios');

// طلب GETasync function getUser() { try { const response = await axios.get('https://api.github.com/users/octocat'); console.log(response.data); } catch (error) { console.error('خطأ:', error.message); }}

// طلب POST مع بياناتasync function createPost() { const response = await axios.post('https://jsonplaceholder.typicode.com/posts', { title: 'منشور جديد', body: 'محتوى المنشور', userId: 1 }, { headers: { 'Content-Type': 'application/json' } }); console.log('تم الإنشاء:', response.status);}

getUser();createPost();


متى تختار Axios: إذا كنت بحاجة إلى أداة شاملة ذات عتبة دخول منخفضة، ودعم لتقدم التحميل، وتوثيق ممتاز.



2. Got — الأداء وواجهة برمجة تطبيقات حديثة



Got هو عميل HTTP سريع وخفيف الوزن مبني على الـ Promises. يقدم مجموعة غنية من الميزات: متابعة إعادة التوجيه تلقائيًا، التخزين المؤقت، إعادة المحاولة عند الأخطاء، دعم التدفقات والكوكيز. يستخدم Got http2-wrapper لـ HTTP/2.



const got = require('got');

// طلب GET بسيطasync function fetchData() { const response = await got('https://api.github.com/users/octocat').json(); console.log(response);}

// تحميل ملف مع تتبع التقدمasync function downloadFile() { const stream = got.stream('https://example.com/file.zip'); stream.on('downloadProgress', (progress) => { console.log(`تم التحميل: ${(progress.percent * 100).toFixed(1)}%`); }); stream.pipe(require('fs').createWriteStream('file.zip'));}

fetchData();


متى تختار Got: للتطبيقات عالية التحميل حيث تكون السرعة مهمة، ودعم نقل البيانات عبر التدفقات، وخيارات التكوين المتقدمة.



3. SuperAgent — المرونة وسلاسل الاستدعاءات



SuperAgent هو أحد أقدم عملاء HTTP، ويشتهر بواجهته السلسة (سلاسل الدوال). يدعم التقدم، المهلات الزمنية، التسلسل، تحميل الملفات ويعمل في كل من Node.js والمتصفح.



const superagent = require('superagent');

// GET مع معاملات الاستعلامsuperagent .get('https://api.github.com/search/repositories') .query({ q: 'nodejs', sort: 'stars', order: 'desc' }) .set('Accept', 'application/json') .then(res => { console.log('تم العثور على مستودعات:', res.body.total_count); }) .catch(err => console.error(err));

// إرسال نموذجsuperagent .post('https://httpbin.org/post') .type('form') .send({ username: 'test', password: '12345' }) .then(res => console.log(res.body));


متى تختار SuperAgent: إذا كنت تفضل الصياغة المتسلسلة القابلة للقراءة، أو تحتاج دعمًا للإصدارات القديمة من Node.js، أو العمل المعقد مع النماذج والملفات.



4. Node Fetch — واجهة برمجة تطبيقات مألوفة من المتصفح



Node Fetch هو نسخة من واجهة Fetch الأصلية في المتصفح لـ Node.js. مثالي للمطورين المعتادين على fetch القياسي. خفيف الوزن وبسيط، لكنه يتطلب مكتبات إضافية للوظائف المتقدمة.

توصيات