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

الميزات الرئيسية لـ NodeJS
غير متزامن ومدفوع بالأحداث
تستخدم NodeJS خيطًا واحدًا، لكن لا تدع البساطة تخدعك. تستخدم نهجًا ذكيًا يسمى بنية المعمارية المدفوعة بالأحداث. يعني هذا أن NodeJS يتعامل بكفاءة مع الطلبات المتعددة مثل النادل الذي يتعامل مع مطعم مزدحم. عندما يصل طلب، يتم تسجيله كحدث. ثم تحتفظ NodeJS بسجل لهذه الأحداث وتقوم بتفعيل الوظائف (ردود الفعل) لمعالجتها عندما تصبح جاهزة. هذه الطبيعة غير المتزامنة تتيح لـ NodeJS التميز في التعامل مع المهام التي تتضمن الانتظار، مثل طلبات الشبكة، دون إبطاء النظام بأكمله.
JavaScript على الخادم
تقليديًا، كانت ساحة لعب JavaScript هي متصفح الويب، حيث جعلت صفحات الويب تفاعلية. تكسر NodeJS هذه الحاجز من خلال إنشاء بيئة تنفيذ قوية تعزز تشغيل كود JavaScript خارج المتصفح - على الخادم. هذه الابتكار يعد نقطة تحول للمطورين. يمكنهم الآن الاستفادة من معرفتهم الحالية بـ JavaScript لتطوير كل من الواجهة الأمامية (واجهة المستخدم) والواجهة الخلفية (منطق جانب الخادم)، مما يسهل العملية برمتها.
NPM
تعمل NPM، وهي ميزة مدمجة في NodeJS، كمستودع مركزي يضم مجموعة واسعة من وحدات الكود المكتوبة مسبقًا والمكتبات. يمكن للمطورين الاستفادة من NPM للبحث عن الوظائف المحددة التي يحتاجونها، وتنزيلها بسهولة، ودمجها في تطبيقاتهم. يسرع نظام المكتبة الواسع هذا من تطوير البرمجيات وتمكين المطورين من دمج مجموعة واسعة من الميزات دون الحاجة إلى البدء من الصفر.
قابلية التوسع ذات الخيط الواحد مع I/O غير المحجوز
بينما تستخدم NodeJS خيطًا واحدًا، فإنها تحقق قابلية توسع مثيرة للإعجاب من خلال تقنية تسمى I/O غير المحجوز. وهذا يعني أن NodeJS لا تنتظر إتمام المهام البطيئة (مثل طلبات الشبكة) قبل معالجة الطلبات الأخرى. بدلاً من ذلك، تنتقل بذكاء إلى الطلب التالي مع تتبع عملية I/O المعلقة. بمجرد أن تنتهي المهمة البطيئة، تعود NodeJS وتتعامل مع الاستجابة.
أدوات HTTP المدمجة
تأتي NodeJS مجهزة مسبقًا بجميع الأدوات اللازمة لبناء خوادم الويب. تبسط وحدات HTTP المدمجة عملية التطوير من خلال السماح للمطورين بإنشاء خوادم HTTP قوية والتعامل مع طرق HTTP المختلفة (GET، POST، PUT، DELETE) بسهولة.
مجتمع مفتوح المصدر نشط
تستفيد NodeJS من مجتمع مفتوح المصدر واسع ونشط. يعني هذا وجود ثروة من الموارد المتاحة بسهولة للمطورين. الوثائق الشاملة، والدروس، والمنتديات هي مجرد بعض الأمثلة على الدعم الذي يقدمه المجتمع. بالإضافة إلى ذلك، تتيح الطبيعة المفتوحة المصدر لأي شخص المساهمة في نمو المشروع والاستفادة من المعرفة والخبرة الجماعية للمجتمع.
ما هو Express؟
Express، المعروف أيضًا بـ ExpressJS، هو إطار عمل تطبيقات ويب بارز مبني على أساس NodeJS. يعمل كطبقة تجريدية قوية، موفرًا مستوى أعلى من التطوير مقارنةً بالإمكانات الخام لـ NodeJS. يترجم هذا التجريد إلى تقليل كبير في كود boilerplate، مما يسرع عملية تطوير تطبيقات الويب وواجهات برمجة التطبيقات.

الميزات الرئيسية لـ ExpressJS
تطوير مبسط مع التجريديات
توفر NodeJS منصة قوية لتنفيذ JavaScript على جانب الخادم، لكنها قد تنطوي على كتابة كود على مستوى منخفض للوظائف الشائعة في تطبيقات الويب. يعمل ExpressJS كطبقة تجريدية، موفرًا ميزات وهياكل معدة مسبقًا تسهل التطوير. يترجم هذا إلى كود أقل من boilerplate وتركيز على منطق التطبيق الخاص بك.
نظام توجيه أنيق
يفتخر ExpressJS بنظام توجيه قوي يسمح للمطورين بتعريف المسارات باستخدام طرق واضحة وموجزة. يمكنك تعريف مسارات لروابط URL المختلفة (مثل "/products"، "/about-us") وربطها بوظائف معينة (معالجات) التي تتعامل مع طلب المستخدم لتلك الصفحة المحددة. تعزز هذه الفصل الواضح للمسؤوليات تنظيم الكود وسهولة الصيانة.
وظائف معيارية مع Middleware
الـ Middleware مفهوم قوي يسمح للمطورين بتعريف وظائف تعمل كوسيط بين الطلبات الواردة والاستجابات الصادرة. يمكن لكل وظيفة Middleware أداء مهام محددة مثل تسجيل الطلبات، وتحليل البيانات من جسم الطلب (مثل بيانات النماذج، JSON)، أو تنفيذ فحوصات المصادقة. تتسلسل وظائف Middleware معًا، وتنتقل الطلبات عبر هذه السلسلة، مما يسمح بوظائف معيارية وقابلة لإعادة الاستخدام عبر تطبيقك.
محتوى ديناميكي مع محرك القوالب
تتطلب تطبيقات الويب غالبًا إنشاء محتوى ديناميكي استنادًا إلى إدخال المستخدم أو استرجاع البيانات. يتكامل ExpressJS بسلاسة مع مجموعة متنوعة من محركات القوالب مثل Pug (الذي كان يُعرف سابقًا باسم Jade) أو EJS (JavaScript المضمنة). توفر هذه المحركات للمطورين وسيلة لتحديد القوالب التي تعمل كخطط لصفحات HTML. يمكن أن تحتوي القوالب على عناصر نائبة للمحتوى الديناميكي. في وقت التشغيل، تملأ ExpressJS هذه العناصر النائبة بالبيانات من التطبيق الخاص بك، مما ينتج المحتوى النهائي لـ HTML الذي يتم تسليمه إلى متصفح المستخدم.
أدوات HTTP مدمجة
يستفيد ExpressJS من وحدات HTTP المدمجة التي تأتي مع Node.js. يمنح هذا الإرث المطورين القدرة على إنشاء خوادم ويب بسهولة، والتعامل مع طلبات واستجابات HTTP، وإدارة طرق HTTP المختلفة (GET، POST، PUT، DELETE) بسهولة. لا تحتاج إلى كتابة كود معقد من الصفر لإعداد وظائف الخادم الأساسية.
نظام مكتبة واسع الغير مصنف
تمامًا كما نمت Node.js مع NPM (مدير حزم Node)، يستفيد ExpressJS من نظام واسع من المكتبات والأدوات من طرف ثالث. يمكن دمج هذه الوحدات المعدة مسبقًا بسهولة في تطبيق ExpressJS الخاص بك، مما يوسع وظيفته ويضيف ميزات مثل مصادقة المستخدم، وتفاعلات قاعدة البيانات، وتحميل الملفات، أو المراسلة في الوقت الحقيقي.
كيف تصنع طلبات POST عبر NodeJS Express؟
ستوجهك هذه القسم حول كيفية البدء في صنع طلبات POST باستخدام NodeJS Express!
المتطلبات المسبقة
أولاً، يجب عليك التأكد من تثبيت NodeJS و npm (مدير الحزم Node) على نظامك. يمكنك التحقق من تثبيتهما عن طريق تشغيل node -v و npm -v في terminal الخاص بك.
- إنشاء دليل المشروع: أنشئ دليلًا جديدًا لمشروعك باستخدام terminal الخاص بك. انتقل إلى الموقع المطلوب وشغل
mkdir my-express-appلإنشاء الدليل. - تهيئة المشروع: داخل الدليل الذي أنشأته حديثًا، قم بتهيئة مشروع جديد باستخدام npm عن طريق تشغيل
npm init -y. سيؤدي ذلك إلى إنشاء ملفpackage.jsonلمشروعك.
الخطوة 1 - تثبيت ExpressJS
الآن بعد أن تم إعداد مشروعك، دعنا نثبت ExpressJS. في terminal الخاص بك، داخل دليل المشروع، شغل السطر التالي من الكود. سيؤدي ذلك إلى تنزيل وتثبيت ExpressJS كاعتماد لمشروعك.
npm install expressالخطوة 2 - إنشاء ملف خادم
قم بإنشاء ملف JavaScript جديد باسم server.js داخل دليل المشروع الخاص بك. سيحتوي هذا الملف على كود خادم Express الخاص بك.
الخطوة 3 - استيراد Express وتعريف التطبيق
افتح ملف server.js في محرر الأكواد الخاص بك وأضف السطر التالي من الكود:
const express = require('express');ثم، أنشئ مثيل تطبيق Express:
const app = express();الخطوة 4 - تعريف المسار والتعامل مع طلبات POST:
استخدم طريقة app.post لتحديد مسار URL والدالة التي ستتعامل مع الطلب:
app.post('/your-endpoint', (req, res) -> {
// التعامل مع منطق طلب POST هنا
});عند تنفيذ مقاطع الكود، تأكد من استبدال /your-endpoint بمسار URL الفعلي الذي تنوي تلقي طلبات POST عليه.
تقبل الوظائف المرسلة إلى app.post حجة من اثنين:
req: كائن الطلب الذي يحتوي على معلومات حول الطلب الوارد، بما في ذلك البيانات المرسلة في الجسم.res: كائن الاستجابة الذي يمكنك استخدامه لإرسال استجابة مرة أخرى إلى العميل.
الخطوة 5 - الوصول إلى بيانات POST
داخل الوظيفة التي تتعامل مع طلب POST، يمكنك الوصول إلى البيانات المرسلة في جسم الطلب باستخدام كائن req.body - إنه كائن JavaScript يحتوي على أزواج من المفتاح والقيمة الخاصة بالبيانات المرسلة في جسم الطلب.
app.post('/your-endpoint', (req, res) => {
const name = req.body.name; // بافتراض أن البيانات تحتوي على مفتاح 'name'
const message = req.body.message; // بافتراض أن البيانات تحتوي على مفتاح 'message'
// معالجة البيانات هنا (على سبيل المثال، تخزينها في قاعدة البيانات، إرسال بريد إلكتروني)
res.send('تم استلام طلب POST بنجاح!');
});
الخطوة 6 - إرسال استجابة
بعد معالجة البيانات من طلب POST، يمكنك إرسال استجابة مرة أخرى إلى العميل باستخدام كائن res.
app.post('/your-endpoint', (req, res) => {
// ... (معالجة البيانات)
res.send('تم استلام طلب POST بنجاح!'); // إرسال رسالة بسيطة
// أو
res.json({ message: 'تم استلام البيانات ومعالجتها بنجاح!' }); // إرسال بيانات JSON
});
الخطوة 7 - بدء الخادم
أخيرًا، ابدأ الخادم عن طريق الاستماع على منفذ معين باستخدام طريقة app.listen. عادةً، يكون رقم المنفذ المستخدم للتطوير هو 3000، كما هو موضح في عينة الكود أدناه:
app.listen(3000, () => {
console.log('الخادم يستمع على المنفذ 3000!');
});
Apidog - تسريع طلبات GET في Express باستخدام توليد الكود
سّرع تطوير واجهات برمجة التطبيقات والتطبيقات من خلال التفكير في استخدام Apidog، وهي منصة شاملة لتطوير واجهات برمجة التطبيقات التي تحتوي على ميزة توليد الكود للغة البرمجة JavaScript.

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

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

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

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

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


بمجرد أن تكون متأكدًا من واجهة برمجة التطبيقات الخاصة بك، يمكنك النقر على Send، الذي يرسل الطلب إلى واجهة برمجة التطبيقات. يجب أن تتوقع استجابة كاملة. نظرة خاطفة على رمز الحالة تخبرك ما إذا كانت ناجحة. يمكنك أيضًا فحص الاستجابة الخام، التي تُظهر هيكل البيانات الدقيق الذي يحتاجه الكود لديك لفهم المعلومات من خوادم واجهة برمجة التطبيقات.
الخاتمة
توفر NodeJS و Express تركيبة قوية لبناء تطبيقات الويب الحديثة التي تتفاعل مع البيانات. من خلال الاستفادة من نظام التوجيه ومهارات Middleware في Express، يمكن للمطورين التعامل بكفاءة مع طلبات POST، وهي العملة الأساسية لتقديم النماذج، وتبادل البيانات على الويب. بفضل أدوات مثل body-parser لتحليل أجسام الطلبات، يصبح الوصول إلى البيانات ومعالجتها أمرًا سهلاً.
يمكّن هذا المطورين من إنشاء تطبيقات يمكنها جمع إدخال المستخدم، وتخزين البيانات في قواعد البيانات، أو بدء إجراءات بناءً على المعلومات المستلمة. تجعل سهولة الاستخدام والمرونة التي توفرها NodeJS و Express خيارًا جذابًا للمطورين الذين يتطلعون لبناء تطبيقات ويب ديناميكية ومرتبطة بالبيانات.
