تتطلب تطبيقات الويب هذه الأيام تبادل البيانات بين عملائها والخوادم الخاصة بها حيث تشكل الوظائف الأساسية للتفاعلات الحديثة على الويب. ومع ذلك، يمكن للمطورين الآن استخدام مكتبة NodeJS، ExpressJS، لتلبية هذا المتطلب.
نقدم لك Apidog - منصة قوية وبسيطة ولكنها بديهية لتطوير واجهة برمجة التطبيقات تتيح القدرة على توليد الكود بعدة لغات برمجة.
لتتعرف على اللغات الأخرى التي يمكن أن تدعمها Apidog بعيدا عن JavaScript، اضغط على الزر أدناه!
قبل الغوص في طلبات GET لـ NodeJS Express، يجب علينا أولاً فهم المفاهيم التي تدور حول عبارة "طلب GET لـ NodeJS Express".
ما هو NodeJS؟
NodeJS هو بيئة تشغيل مفتوحة المصدر ومتعددة المنصات غيرت بشكل جذري تطوير JavaScript من خلال تقديم بيئة تشغيل مبنية على محرك V8 JavaScript الخاص بـ Chrome. يمكّن NodeJS تنفيذ كود JavaScript خارج المتصفحات، مما يفتح العديد من الاحتمالات لتطوير الجانب الخادم.

الميزات الرئيسية لـ NodeJS
JavaScript
قبل NodeJS، كان المطورون يتنقلون بين لغات مختلفة لتطوير الواجهة الأمامية (JavaScript) والواجهة الخلفية (لغات مثل Python و Java). يلغي NodeJS هذه العائق من خلال السماح لـ JavaScript بالعمل على الجانب الخادم باستخدام محرك V8 JavaScript الخاص بـ Chrome. هذا يترجم إلى لغة واحدة لكل من تطوير الواجهة الأمامية والواجهة الخلفية، مما يقلل من وقت التطوير ويعزز قاعدة الشيفرة الموحدة.
العمارة المعتمدة على الأحداث
يتألق NodeJS في نموذجه غير الحجب للدخل والخرج غير المتزامن. وهذا يعني أنه يستخدم حلقة أحداث لمعالجة اتصالات متعددة في وقت واحد بكفاءة. تخيل أن خادم ويب تقليدي ينتظر انتهاء استعلام قاعدة البيانات قبل معالجة طلب آخر. لكن NodeJS يمكنه التعامل مع طلبات أخرى أثناء الانتظار لرد قاعدة البيانات. تجعل هذه الطريقة المعتمدة على الأحداث NodeJS مثاليًا للتطبيقات التي تتعامل مع حجم كبير من الاتصالات المتزامنة، مثل تطبيقات الدردشة أو أدوات التعاون في الوقت الحقيقي.
قابلية التوسع العالية
على الرغم من أن NodeJS نفسه يعمل على خيط واحد، فإنه يحقق قابلية توسع ملحوظة من خلال حلقة الأحداث ونمط البرمجة غير المتزامن. تدير حلقة الأحداث الواردة بفعالية الطلبات والمهام، مما يضمن بقاء الخادم سريع الاستجابة. بالنسبة للتطبيقات ذات الطلبات العالية، يمكن تجميع NodeJS عبر عمليات متعددة، مما يعزز أيضًا قدرته على التعامل مع كميات كبيرة من الحركة.
أداء سريع
معروف عن NodeJS أداؤه الاستثنائي، لا سيما للمهام المرتبطة بالدخل والخرج. ويرجع ذلك إلى نموذج الدخل والخرج غير الحجب وكفاءة محرك V8 JavaScript. يمتاز NodeJS بقدرته على التعامل مع عدد كبير من الاتصالات المتزامنة دون التضحية بالسرعة، مما يجعله مناسبًا للتطبيقات في الوقت الحقيقي وتدفق البيانات.
نظام بيئي غني وNPM
تتميز مجتمع NodeJS بالاتساع والنشاط، مما يعزز نظام بيئي مزدهر من الوحدات الجاهزة المتاحة من خلال إدارة حزم Node (NPM). يفتخر NPM بمستودع ضخم من الحزم مفتوحة المصدر التي توفر وظائف لمهام متنوعة، مما يوفر الوقت والجهد للمطورين عند بناء التطبيقات. هل تحتاج للتعامل مع قواعد البيانات، أنظمة الملفات، المصادقة، أو أخذ عينات من الويب؟ هناك فرصة كبيرة أن يكون هناك حزمة NPM لذلك.
التوافق عبر المنصات
تطبيقات NodeJS بطبيعتها متعددة المنصات. يمكن أن تعمل الشيفرة المكتوبة على Windows بسلاسة على Linux أو macOS دون تعديلات. هذه ميزة كبيرة للمطورين، لأنها تزيل الحاجة إلى إعادة كتابة الشيفرة لأنظمة التشغيل المختلفة.
التطبيقات في الوقت الحقيقي
تجعل الطبيعة المعتمدة على الأحداث وأسلوب البرمجة غير المتزامن لـ NodeJS خيارًا مثاليًا لبناء التطبيقات في الوقت الحقيقي. تتطلب هذه التطبيقات اتصالات ثنائية الاتجاه مستمرة بين العميل والخادم، ويمتاز NodeJS بقدرته على التعامل بكفاءة مع تدفق هذه الاتصالات، مما يمكن من ميزات مثل الدردشة في الوقت الحقيقي، والتحرير التعاوني، وتحديثات البيانات المباشرة.
عمارة الميكروسيرفيس
تتوافق الطبيعة المعيارية لتطبيقات NodeJS جيدًا مع عمارة الميكروسيرفيس. تقسّم الميكروسيرفيس التطبيق إلى خدمات أصغر ومستقلة تتواصل مع بعضها البعض. تجعل الطبيعة الخفيفة والقابلة للتوسع لـ NodeJS مناسبة لبناء هذه الميكروسيرفيس، مما يعزز القابلية للتعديل وصيانة التطبيقات المعقدة.
ما هو Express؟
Express، المعروف أيضًا باسم ExpressJS، هو إطار عمل لتطبيقات الويب NodeJS بسيط ومرن يوفر مجموعة قوية من الميزات للمطورين. يمكن التفكير في ExpressJS على أنه صندوق أدوات قوي يبسط ويسهل عملية بناء تطبيقات الويب وواجهات برمجة التطبيقات على رأس NodeJS.

الميزات الرئيسية لـ ExpressJS
منهج منظم
يقدم ExpressJS هيكلًا محددًا جيدًا لتنظيم كود تطبيق الويب الخاص بك. يقدم مفاهيم مثل المسارات، والبرامج الوسيطة، والنمذجة، مما يعزز القابلية للصيانة والوضوح. يسهل هذا الهيكل عليك وعلى المطورين الآخرين فهم وتنقل قاعدة الشيفرة.
توجيه
وظيفة أساسية لتطبيقات الويب هي معالجة الطلبات بناءً على عناوين URL. يسمح لك ExpressJS بتحديد المسارات التي تعيّن عناوين URL معينة (مثل "/home" أو "/products/:id") إلى وظائف المعالجة المقابلة داخل تطبيقك. يجعل هذا الفصل الواضح بين منطق عنوان URL ومعالجة الطلبات كودك أكثر تنظيمًا وأسهل للإدراك.
البرامج الوسيطة
تعد وظائف البرمجيات الوسيطة مفهومًا قويًا في ExpressJS. تعمل هذه الوظائف كوسيطات يمكن توصيلها في دورة الطلب والاستجابة في مراحل مختلفة. يمكن أن تؤدي البرامج الوسيطة مجموعة واسعة من المهام، بما في ذلك:
- تسجيل الطلبات لأغراض التصحيح والمراقبة.
- تحليل البيانات من الطلبات الواردة (مثل بيانات JSON من تقديم النموذج).
- معالجة المصادقة لتأمين تطبيقك.
- تقديم الملفات الثابتة لتقديم العناصر الثابتة مثل الصور أو ملفات CSS.
من خلال ربط وظائف البرامج الوسيطة معًا، يمكنك إنشاء سير تطبيق معياري ومرن يلبي احتياجاتك المحددة.
النمذجة
غالبًا ما تتطلب صفحات الويب الديناميكية إنشاء محتوى HTML بناءً على البيانات. يتكامل ExpressJS مع محركات النمذجة المختلفة مثل Pug (formerly Jade) أو EJS. تسمح لك هذه المحركات بتعريف قوالب HTML مع عناصر نائبة للبيانات الديناميكية. يدمج ExpressJS بياناتك بسلاسة مع القوالب لإنشاء استجابة HTML النهائية المرسلة إلى العميل. يسهل هذا العملية لإنشاء صفحات ويب ديناميكية.
المرونة والتخصيص
بينما يوفر ExpressJS نهجًا منظمًا، إلا أنه مصمم ليكون مرنًا. يمكنك اختيار استخدام الميزات التي تحتاجها فقط لمشروعك، مما يحافظ على عملية التطوير لديك خفيفة وفعالة. علاوة على ذلك، يوفر نظام Node.js البيئي ثروة من البرامج الوسيطة والمكتبات التابعة لجهات خارجية التي يمكن دمجها مع ExpressJS لتوسيع وظائفها حسب الاحتياجات المحددة. وهذا يسمح لك بتخصيص ExpressJS ليناسب متطلبات تطبيق الويب الفريدة لديك.
معالجة الأخطاء
يوفر ExpressJS آليات مدمجة لمعالجة الأخطاء التي تحدث أثناء معالجة الطلبات. يتيح لك ذلك تحديد معالجات أخطاء مخصصة للتعامل بلطف مع الحالات غير المتوقعة وتقديم رسائل خطأ مفيدة إلى المستخدمين أو لأغراض التسجيل.
دعم الاختبار
تجعل الطبيعة المعيارية لتطبيقات ExpressJS، إلى جانب نهج البرامج الوسيطة، مناسبة تمامًا للاختبارات الوحدوية. يمكن استخدام مجموعة متنوعة من أطر الاختبار لاختبار مكونات ووظائف البرامج الوسيطة الفردية بشكل مستقل، مما يعزز جودة الشيفرة وقابليتها للصيانة.
مجتمع كبير وموارد
يستفيد ExpressJS من مجتمع مطورين كبير ونشط. يترجم هذا إلى وثائق شاملة ودروس وموارد عبر الإنترنت يمكن أن تساعد المطورين من جميع مستويات الخبرة. بالإضافة إلى ذلك، يوجد مجموعة كبيرة من البرامج الوسيطة والمكتبات التي تحتفظ بها المجتمع، مما يزيد من إثراء تجربة التطوير.
كيف تصنع طلبات GET في NodeJS Express؟
اتبع هذا القسم لتكتشف كيف يمكنك البدء في إنشاء طلبات GET باستخدام NodeJS Express في خطوات قصيرة وبسيطة!
الخطوة 1 - تثبيت Express
إذا لم يكن لديك Express مثبتة بالفعل، يمكنك القيام بذلك باستخدام npm، yarn، أو Shell:
npm install express
الخطوة 2 - إنشاء خادم
إليك هيكل أساسي لتطبيق ExpressJS:
const express = require('express');
const app = express();
// المسارات والتطبيقات الخاصة بك هنا
const port = process.env.PORT || 3000; // استخدام متغير البيئة للميناء أو الافتراضي إلى 3000
app.listen(port, () => console.log(`الخادم يستمع على المنفذ ${port}`));
الخطوة 3 - تحديد مسار GET
استخدم طريقة app.get()
لتحديد مسار يتعامل مع طلبات GET إلى مسار محدد. تتطلب حفنة من المتغيرات:
- المسار (مثل
/users
) - دالة رد الاتصال التي تتعامل مع الطلب والاستجابة:
app.get('/users', (req, res) => {
// التعامل مع طلب GET إلى نقطة النهاية /users
res.send('مرحبًا من نقطة نهاية المستخدمين!');
});
في هذا المثال، سيؤدي أي طلب GET إلى مسار /users
إلى تفعيل دالة رد الاتصال، التي ترسل استجابة بسيطة.
الخطوة 4 - الوصول إلى بيانات GET
يوفر كائن الطلب (req
) في دالة رد الاتصال معلومات حول الطلب، بما في ذلك أي معلمات تم إرسالها معها. إليك كيفية الوصول إليها:
- معلمات الاستعلام: يمكن الوصول إليها من خلال كائن
req.query
. على سبيل المثال، طلب GET إلى/users?name=John
ستحتوي علىreq.query.name
المحددة إلى"John"
. - معلمات المسار: محددة باستخدام أنماط في مسار الرابط (مثل
/users/:id
). يمكنك الوصول إليها باستخدام المفتاح الموافق في كائنreq.params
.
الخطوة 5 - الرد على الطلب
يتيح لك كائن الاستجابة (res
) إرسال استجابة مرة أخرى إلى العميل. إليك بعض الطرق الشائعة:
res.send()
: ترسل استجابة نصية بسيطة.res.json()
: ترسل استجابة JSON.res.sendFile()
: ترسل ملف ثابت.
تذكر أن تبدأ خادمك عن طريق استدعاء app.listen()
بعد تحديد المسارات الخاصة بك.
Apidog - تسريع طلبات GET في Express من خلال توليد الكود
من أجل التقدم بسرعة إلى المرحلة التالية من تطوير تطبيقك، يجب أن تفكر في استخدام Apidog، منصة تطوير واجهة برمجة التطبيقات الشاملة التي تحتوي على ميزة توليد الكود لەلغة البرمجة JavaScript.

دعنا نلقي نظرة على كيفية توليد كود عميل JavaScript في بضع نقرات.
توليد كود JavaScript بسرعة لتطبيقك مع Apidog
سيسلط هذا القسم الضوء على كيفية توليد كود JavaScript (أو لغات البرمجة الأخرى المتاحة) لتطبيقك.

أولاً، حدد موقع زر </>
الموجود حول الزاوية العليا اليمنى من الشاشة. إذا كنت تجد صعوبة في تحديد موقع الزر، يمكنك الرجوع إلى الصورة أعلاه.

تابع باختيار لغة البرمجة من جانب العميل التي تحتاجها. لديك القدرة على اختيار مكتبة JavaScript التي تشعر براحة أكبر في استخدامها.
كل ما تحتاجه هو نسخ ولصق الكود إلى IDE الخاص بك، ومتابعة التعديل لضمان أنه يناسب تطبيق NodeJS الخاص بك! ومع ذلك، إذا كنت حريصًا على استخدام Unirest كما هو موضح في الصورة أعلاه، يمكنك الرجوع إلى المقال هنا:

اختبر واجهات برمجة التطبيقات مع Apidog
يوفر Apidog للمطورين واجهة مستخدم مريحة ولكنها جميلة لتصحيح واجهات برمجة التطبيقات.

قدم نقطة النهاية الخاصة بواجهة برمجة التطبيقات في الشريط المميز بالسهم في الصورة أعلاه.
إذا لم تكن متأكدًا من استخدام معلمات متعددة في عنوان URL، يمكن أن يوجهك هذا المقال حول كيفية الوصول إلى المورد الدقيق داخل مجموعات البيانات الأكبر!


بمجرد أن تكون متأكدًا من واجهتك البرمجية، يمكنك النقر على Send
، الذي يرسل الطلب إلى واجهة برمجة التطبيقات. ينبغي أن تتوقع استجابة كاملة. لمحة على حالة الرمز تخبرك إذا كانت ناجحة. يمكنك أيضًا فحص الاستجابة الخام، التي تظهر الهيكل الدقيق للبيانات التي يحتاج الكود الخاص بك لفهم المعلومات من خوادم واجهة برمجة التطبيقات.
الخاتمة
يسمح لك NodeJS مع Express بإنشاء تطبيقات ويب قوية تستفيد من كفاءة المدخلات والمخرجات غير الحاجبة المعتمدة على الأحداث. يوفر Express طريقة نظيفة وموجزة لتعريف المسارات التي تستجيب لطلبات GET (وطرق HTTP الأخرى). يمكنك إنشاء وظائف للتعامل مع البيانات التي تم إرسالها مع الطلب، مثل سلاسل الاستعلام أو معلمات المسار.
هذا يمكّنك من بناء تجارب ويب ديناميكية وتفاعلية، وجمع المعلومات بكفاءة من جانب العميل. من خلال فهم كيفية تعريف ومعالجة طلبات GET في Express، قد فتحت حجر بناء أساسي لبناء تطبيقات NodeJS قوية.