[MUSIC]
الآن بعد أن فهمنا REST API ونعبر عن الدعم
لـ REST API، دعنا ننتقل إلى التمرين التالي.
حيث سننظر في كيفية تطوير واجهة برمجة تطبيقات REST
باستخدام الدعم المقدم من خلال express.
وأيضا، استخدام جهاز التوجيه السريع،
مما يتيح لنا تنظيم التعليمات البرمجية لدينا بطريقة أكثر ملاءمة
عندما تحتاج إلى دعم عدد كبير من نقاط النهاية أبي ريست.
للبدء، والاستمرار في مجلد عقدة اكسبرس
كنا نعمل على خادم الويب القائم على التعبير.
في موجه، دعونا تثبيت محلل الجسم،
لذلك للقيام بذلك، اكتب npm تثبيت محلل الجسم - حفظ.
ونحن نستخدم الإصدار 1.18.3 من
محلل الجسم في هذه الدورة هنا.
الآن مرة واحدة لدينا تثبيت محلل الجسم، ثم انتقل إلى التعليمات البرمجية لدينا.
في index.js5،
اسمحوا لي أن تتطلب بوديبارسر، لذلك
سنقول كونست
بوديبارسر تتطلب محلل الجسم.
وبعد ذلك كلما كنت بحاجة إلى استخدام البرامج الوسيطة،
ستقول، app.use (bodyParser.json).
لذلك هذا يسمح لنا لتحليل نص رسالة الطلب،
والتي يتم تنسيقها بتنسيق JSON.
بمجرد الانتهاء من ذلك، دعونا نبدأ في
بناء دعم واجهة برمجة تطبيقات REST لنقطة النهاية/الأطباق.
يتم دعم استخدام
طرق app.all و app.get و وضع و نشر و حذف بواسطة Express.
لذلك للقيام بذلك، اسمحوا لي أن أبدأ بقول
app.all، والمعلمات الأولى
التي يأخذ app.all هي نقطة النهاية.
لذلك في هذه الحالة، أنا تحديد نقطة النهاية من/الأطباق.
ثم المعلمة الثانية هي وظيفة رد الاتصال،
req، res، التالي، المعلمات الثلاثة هنا.
وداخل وظيفة رد الاتصال هذه، سنقوم بمعالجة الطلب الوارد.
لذلك سنقول، عندما يأتي الطلب، لجميع الطلبات.
لذلك عندما نقول app.all، بغض النظر عن الطريقة التي يتم استدعاؤها
، الحصول على، وضع، نشر، أو حذف، لنقطة نهاية واجهة برمجة تطبيقات REST،
سيتم تنفيذ هذا الرمز أولاً بشكل افتراضي هنا.
لذلك سنقول الدقة StatusCode هو 200
ثم Res.Setheader
ودعونا نقول نص نوع المحتوى.
سنرسل نصًا عاديًا الآن، بدلاً من نص HTML.
يجب أن يكون هذا كافياً لنقاط نهاية REST API.
في وقت لاحق، سوف نرسل البيانات في شكل JSON بمجرد
أن نتمكن من استرداد البيانات من قاعدة البيانات.
لذلك سوف يأتي في واحدة من التدريبات في وقت لاحق.
في الوقت الحالي، سنقوم ببساطة بإرسال ردود نص عادي مرة أخرى إلى العميل.
الآن بعد هذين، لم تكتمل البرامج الوسيطة هنا بعد.
لذلك سوف ندعو الوظيفة التالية هنا، وبالتالي فإن التالي كما ترى يشير إلى هذا التالي.
لذلك عند الاتصال التالي، ما يعنيه هو أنه سيستمر في البحث عن
مواصفات إضافية أسفل هنا،
والتي سوف تتطابق مع هذه الأطباق نقطة النهاية.
لذلك سيتم القيام بذلك لجميع الطلبات، والحصول على، ووضع، ونشر
، وحذف، على الأطباق، وسوف تستمر إلى واحد المقبل.
حتى هنا، لنفترض أننا نحصل
على طلب الحصول على الأطباق، مما يعني أنه الآن،
إذا حصلنا على طلب الحصول على الأطباق،
أولا سيتم تنفيذ هذا،
ومن ثم سيتم تمرير req و res
إلى هذه المكالمة الثانية هنا.
لذا في هذه الحالة، لن أحتاج بعد الآن،
لأنني لن أتصل بالمزيد.
سأكمل التعامل مع الحق داخل هذه الطريقة هنا نفسها.
لذلك إذا قمنا بتعديل req أو res داخل هذا الرمز،
فعند استدعاء التالي،
سيتم تمرير هذا الكائن المعدل كمعلمة لهذا.
حتى إذا كنت قد أصدرت طلب الحصول على الأطباق، لذلك هذا هو ما سيتم
تنفيذه مباشرة بعد هذا، لذلك هذا المقبل سوف يسبب لتمرير على.
ثم هنا، لاحظت أننا قمنا بتعديل كائن الدقة هنا.
وسيحمل التعديل كمعلمة إدخال لهذه الوظيفة هنا.
حتى داخل وظيفة الحصول على هذه، يمكننا أن نقول، على سبيل المثال، في هذه اللحظة،
أنا ببساطة ذاهب لإرسال رسالة بسيطة، ونحن نقول،
سوف ترسل كل الأطباق لك.
في وقت لاحق، عندما نسترد معلومات الأطباق من قاعدة البيانات
بعد
أن نتعلم عن MongoDB، فإن هذه الوظيفة ستعود إلى بيانات JSON مرة أخرى، نظرًا لأنها في طلب الحصول هنا.
الآن في الدورة السابقة، كنا قد استخدمنا خادم JSON،
وكان خادم JSON يوفر بالفعل كل هذه بالنسبة لنا.
الآن أنت ترى كيف ستقوم
بإنشاء خادم حقيقي سيعالج الطلب الوارد.
ثم قم بإنشاء استجابة مناسبة
وإرسالها إليك استجابة للطلب المستلم من جانب العميل.
وهذا هو المكان الذي يعبر فيه المستخدم، كما نرى هنا، مفيد.
لذلك قمنا بالتعامل مع الحصول على,
دعونا التعامل مع آخر أيضا على الأطباق هنا.
ومرة أخرى، ستكون المعلمات (req، res،
التالي)، وستكون هذه الوظيفة التي يتم استدعاؤها هنا.
الآن، عندما يتم استلام طلب الحصول، لأنك هنا، أنت تتصل بـ rest.end.
بحيث
تكون هذه الغاية هي التعامل مع طلب الحصول ولا تؤدي إلى إرسال الرد مرة أخرى، أو الرد ليتم إرساله مرة أخرى إلى العميل في هذه المرحلة.
الآن، إذا حصلت على طلب مشاركة على الأطباق، مرة أخرى، سيتم تنفيذ هذا الرمز بأكمله.
وبعد ذلك، وبسبب هذا التالي، من شأنها أن تسقط في هذه الوظيفة استدعاء هنا.
ثم سيتم تنفيذ التعليمات البرمجية هنا، لذلك عندما تتلقى
وظيفة طلب المشاركة القادم من الخادم سوف يحمل بعض المعلومات
في نص الرسالة في شكل بيانات JSON.
سيرون ما هو شكل بيانات JSON عندما
ننظر لاحقًا عند اختبار نقطة النهاية باستخدام post net.
سأعرض لك ما سيحتوي عليه نص رسالة طلب المشاركة.
لكن في هذه المرحلة، ما سأفعله هو،
سأستخرج المعلومات من الجسم.
وهكذا هنا عندما نستخدم محلل الجسم، ما يحدث هو أنه
للطلب الوارد، سيتم تحليل نص الطلب الوارد
ثم إضافته إلى كائن req كـ req.body.
وبالتالي فإن req.body تعطيك الوصول إلى كل ما هو داخل هذا الجسم
من الرسالة.
لذلك، عندما أرسل الطلب،
سأضيف معلومات إلى
نص الطلب في شكل سلسلة JSON التي
تحتوي على اسم ووصف.
لذلك أنا ذاهب لاستخراج هذه المعلومات اثنين
ومن ثم طباعتها ومن ثم إرسالها مرة أخرى إلى العميل في رسالة الرد.
حتى أستطيع أن أقول، req.body.ومن ثم الاسم.
وبالتالي فإن التوقع هو أنه عندما يرسل العميل رسالة النشر،
سيحتوي نص رسالة النشر على سلسلة JSON،
والتي ستحتوي أيضًا على خاصية الاسم في سلسلة JSON.
حتى req.body.name زائد
وهذا هو المكان الذي سوف تدرج
مع التفاصيل: + req.body.description.
لذلك مهما كانت سلسلة JSON تحتوي في req.body، ولكن
سيتم تحليل سلسلة JSON في كائن JavaScript
وإضافتها إلى كائن الطلب كهيئة خاصية.
يشير كائن JavaScript إلى أي شيء
جاء كسلسلة JSON في نص رسالة الطلب.
لذلك هذا هو السبب في أنني قادر على تحليل خاصية الاسم، خاصية الوصف،
يمكن أن يكون لديك خاصية السعر، خاصية الصورة، وكل ذلك.
لذلك إذا كنت قد أخذت الدورة السابقة، فقد رأيت بنية
كائن طبق، في شكل سلسلة JSON أو كائن JavaScript هناك.
لذا، يبدو الاسم والوصف مألوفًا لك.
لذلك بالضبط ما أستخدمه هنا.
الآن أنا فقط استخراج الاسم والوصف من الجثة
ثم إرسالها مرة أخرى إلى العميل في هذه الهيئة.
لذلك أنا فقط إنشاء رسالة الرد هذه هنا باستخدام المعلومات
من نص رسالة الطلب، ومن ثم إرسالها مرة أخرى إلى العميل.
وبهذه الطريقة يمكنني تأكيد أن الخادم يتلقى كل ما أرسله
في نص الرسالة.
لذلك هذا هو طلب المشاركة.
الآن لوضع، اسمحوا لي فقط نسخ هذا، ومن ثم لصقه هنا.
ثم لوضع على تلك الأطباق نقطة النهاية،
لأنه وضع على نهاية الأطباق لا معنى له.
تعني المشاركة أنك تقوم بنشر طبق جديد على الخوادم.
A وضع على نقطة نهاية الأطباق لا معنى له،
لذلك هنا ما سأقوم به هو أنني
ذاهب للرد مرة أخرى مع
عملية PUT الرسالة غير معتمدة على/الأطباق.
وبالإضافة إلى ذلك، وسوف أيضا, تضمين رمز الحالة 403.
403 يعني تشغيلها غير معتمد.
لذلك إذا نظرت إلى جدول رموز استجابة HTTP،
فسترى الرمز المقابل 403 ما يمثله هناك.
لذلك هذا هو ما أستخدمه للنشر.
لحذف، أنا ذاهب
لنسخ هذا واحد وحذف أنا ذاهب إلى،
ببساطة تحليل هذا، وبعد ذلك سنقول، حذف جميع الأطباق.
لذلك عند إرسال طلب حذف على نقطة النهاية ذلك/الأطباق.
يتم تفسيره
على أنه يعني أن العميل يريد حذف جميع معلومات الأطباق على جانب الخادم.
الآن، هذه عملية خطيرة، لذا
تأكد من عدم السماح للمستخدمين الشركاء بالقيام بذلك.
في وقت لاحق، عندما ندرس المصادقة،
سنرى كيف يمكننا التحقق من هذه العملية للمستخدمين ذوي الامتيازات فقط.
ولكن مرة أخرى، كما ترون، هذه عملية خطيرة، لذا ضع في اعتبارك ذلك.
حتى الآن ترى أنه في نهاية الأطباق، لدينا الحصول على، وضع، نشر،
وحذف الدعم.
دعونا أيضا دعم ذلك على الأطباق /: نقطة النهاية dished.
لذلك أنا ذاهب لنسخ الحصول على، ووضع، ونشر، وحذف الطرق من هنا،
ومن ثم يدعو كل منهم أيضا أن تكون معتمدة على
الأطباق /: dished.
لذلك هذا هو للحصول على، ونحن نسخ ذلك
ونشر، ووضع، وحذف.
كيف نتعامل مع كل من هذه؟
لذلك للحصول على، إذا حصلت على طلب على أطباق/dished،
ما أود القيام به هو استخراج هذه المعلمة
ثم إرسالها مرة أخرى في الطلب، في رسالة الرد.
لذلك سنقول، سنرسل،
تفاصيل الطبق.
الآن أي طبق؟
هذه المعلومات موجودة في المعلمة.
لذلك يمكن استرداد قيمة المعلمة هذه من
Req.params.dished.
لذلك هذا DisHid، كما ترى، يجب أن يتطابق الاسم الذي تستخدمه هنا مع هذه القيمة هنا.
حتى إذا كنت مجرد رؤية معرف هنا،
وهذا ينبغي أيضا أن يكون المقابلة سيد معين هنا.
لذلك لا يعني الاسم نفسه أي شيء، باستثناء أن اسم المعلمة هذا
وهذا يجب أن يتطابق مع بعضها البعض، بحيث يمكنك استرداد المعلومات بشكل صحيح.
لذلك سنقول، وإرسال المعلمات طبق DisHid
وبعد ذلك سنقول لك.
وبهذه الطريقة نعرف أن الخادم يحصل على معلمة الطبق..
حتى إذا قلت /أطباق/23 هناك عدة ردود
سوف ترسل تفاصيل الطبق 23 لك وهلم جرا.
لذلك سنرى كيف يعمل عندما نستخدم المشاركة لاختبار هذا الخادم.
الآن للبريد
للنشر، لن يتم دعم هذه الطريقة،
لذلك سأقوم فقط بنسخ هذا الجزء.
فإنه ليس من المنطقي أن تفعل وظيفة على معرف طبق معين،
لأنك لا تحاول إضافة طبق جديد.
ولكنك تريد تعديل، ويتم التعديل باستخدام عملية وضع.
لذلك سنقول، عملية POST غير معتمدة على/الأطباق.
ثم أنا ذاهب لإضافة في.
Req.Params.dashid.
لذلك هذا سوف يرسل مرة أخرى قائلا آخر غير معتمد على
الأطباق /23 في رسالة الرد.
الآن، لبوت، لبوت، سنقول،
res.end ويقول ويل، تحديث الطبق.
Req.Params.dashid.
أو بالأحرى، سنفعل ذلك بهذه الطريقة.
سأكتب أولاً، لذلك
يمكن استخدام res.write لإضافة سطر إلى رسالة الرد.
لذلك سنقول تحديث الطبق.
وسنقول (ريك.بارامز) مرهق
وبما أن هذه عملية PUT، وإذا كان الجسم يحتوي على سلسلة JSON،
والتي تحتوي على تفاصيل الطبق،
يمكنني استخراج سلسلة JSON لأننا نستخدم محلل الجسم.
لذلك سنقول سوف
تحديث الطبق:.
أي طبق؟
req.body.name.
بالإضافة إلى ذلك
مع التفاصيل،
req.body.description.
الآن, عندما نقوم بتحديث الطبق, أريد أن أضيف, خط جديد هناك.
لذا سأقول «/n» هناك.
لذلك عندما تقوم بعمل PUT، فأنت ترسل المعلومات حول معرف الطبق الذي
تقوم بتحديثه، وكذلك التفاصيل التي تقوم بتحديثها.
الاسم والوصف،
الذي يجب أن يكون في نص رسالة PUT هناك.
لحذف, وسوف أقول حذف طبق, وreq.Params.dished.
وهكذا للحذف، هذه هي العملية التي سيتم تنفيذها.
لذلك ترى أن لدينا الآن الحصول على، وضع، نشر،
وحذف العمليات على الصحون/dished، نقطة النهاية،
وأيضا الحصول على، وضع، نشر العمليات على/الأطباق، نقطة النهاية.
لذلك دعونا الآن حفظ التغييرات.
وبدء الخادم الخاص بنا مرة أخرى.
بدء تشغيل الخادم عن طريق القول بداية npm.
دعونا نذهب الآن إلى ساعي البريد وإرسال بعض الطلبات إلى هذا الخادم
ونرى ما يعود.
اسمحوا لي أولا إصدار الحصول على المضيف المحلي 3,000 ونرى ما يعود.
لذلك عند إرسال طلب للحصول على المضيف المحلي 3،000،
فإنه لا يزال يعيد صفحة HTML بداية الفهرس،
لأن معالجة الملف الثابت لا تزال في مكانها.
الآن اسمحوا لي أن أرسل طلب الحصول إلى المضيف المحلي: 3000/أطباق، وهذا،
كما تتوقع، سوف ترسل رد قائلا أننا سوف ترسل جميع الأطباق لك.
الآن، دعونا نرسل طلب بوست إلى المضيف المحلي: 3000/أطباق.
لذلك هذا هو المكان الذي يمكنك تغيير الطرق المختلفة التي تريد تنفيذها.
ولكن عندما ترسل رسالة،
تريد تضمين بعض التفاصيل في نص الرسالة لأن
هناك شخص ما يتوقع منك إرسال معلومات في نص الرسالة.
حتى انقر على الجسم هنا وانقر على الخام هنا.
وبعد ذلك، بالنسبة للنص، يمكنك تحديد هذا إلى JSON حتى
استخدم التطبيق JSON.
لذلك سيكون نوع المحتوى تطبيق/JSON في
الطلب الذي ترسله.
لذلك بما أن هذا كائن JSON، لذلك
داخل الأقواس، سأقول الاسم.
أنا ببساطة اكتب في الاختبار،
والوصف.
بعض المعلومات القياسية هنا، لذلك ترى أن هذه هي سلسلة JSON التي
تحتوي على اثنين من الخصائص والاسم والوصف والقيم المقابلة.
لذلك دعونا نرسل طلب آخر إلى الخادم.
عند إرسال طلب آخر إلى الخادم، كما ترى،
في الرد تقول ستضيف الطبق: تفاصيل أسبوع الاختبار: الوصف.
كما ترون، يتم استخراج اثنين من المعلومات
من نص أن JSON طلب [غير مسموع] ومن ثم تضمينها في الرد.
دعونا نرسل طلب وضع للأطباق.
عند إرسال طلب وضع للأطباق، كما ترى،
تقول عملية PUT غير معتمدة على/أطباق، وإلقاء نظرة على الحالة هنا.
وتقول الحالة: 403 ممنوع.
لذلك لا يسمح بهذه العملية على نقطة النهاية هذه.
دعونا نفعل عملية DELETE على الأطباق.
عند حذف العملية على الأطباق،
ثم ستلاحظ أنه يقول حذف جميع الأطباق.
إذن هذا هو الرد الذي ستعودين إليه
لذلك ترى أن وظيفة الحصول على، ووضع
وحذف على /days نقطة النهاية يعمل كما هو متوقع.
الآن دعونا نفعل الحصول على الأطباق /23.
حتى 23 هنا هو
المعلمة، معرف الطبق الذي تريد الحصول عليه.
حتى عند إرسال طلب إلى أن الخادم سوف الرد,
سوف ترسل تفاصيل الطبق: 23 لك.
لذلك ترى أنه تم استخراج المعلمة من رسالة الطلب
ومن ثم تضمينها في رسالة الرد.
دعونا نفعل وظيفة على هذا.
وكما تعلمون، لا يسمح POST على نقطة النهاية هذه،
ولهذا السبب تحصل على حالة 403 ممنوع على هذا.
دعونا نفعل عملية PUT على ذلك.
لذلك بالنسبة لعملية PUT، لاحظت أن الجسم لا يزال يحتوي على ذلك.
لذلك في POST، عند كتابة قيمة هنا،
سيتم الاحتفاظ بها ويمكن تضمينها في الطلبات الأخرى التي ترسلها.
لذلك عند إرسال طلب PUT على نقطة النهاية، أطباق/23.
لذلك لاحظت أنه يقول تحديث الطبق، 23.
سيتم تحديث الطبق، واسم الطبق،
مع التفاصيل، ووصف الطبق هنا.
وبعد ذلك، دعونا نقوم بعملية حذف على نقطة النهاية هذه
ثم تقول، د حذف الطبق: 23.
لذلك يتم دعم نقاط النهاية هذه كما ترى في هذا المثال هنا.
لذلك قمنا بذلك الحصول على PUT، POSRT، وحذف العمليات على كل من نقطة النهاية
/الأطباق وأيضًا نقطة نهاية معرف الطبق.
لذلك، ترى كيف قمنا بتنفيذ دعم نقطة نهاية واجهة برمجة تطبيقات REST
لمجموعة واحدة من نقاط النهاية REST API.
الآن، مع هذا، نكمل الجزء الأول من هذا التمرين.
لذا، رأينا هنا كيف يمكننا استخدام Express لبناء
وتنفيذ نقطة نهاية REST API للأطباق.
الآن، هذا هو الوقت المناسب بالنسبة
لك للقيام git الالتزام مع الرسالة Express Simple REST.
وفقا لمحطة سأبدأ, خادم.
تأكد من أن ثلاثة من العناصر قد تم تغييرها.
لذا، git add، git ارتكاب -m،
Express REST البسيط، وتحقق من المجموعة.
كما ترون، باستخدام Express يمكنك بسهولة تنفيذ دعم REST API.
وكما ترى من هذه القائمة، يمكنك إنشاء التطبيق الحصول على، PUT،
POST، وحذف الطرق لجميع نقاط نهاية REST API مثل هذا.
الآن تخيل أن لديك ألف نقطة نهاية أبي ريست،
وتحتاج إلى بناء شيء من هذا القبيل.
سوف ينفجر ملف index.js الخاص بك مع العديد من نقاط نهاية أبي ريست مختلفة.
ويتم التعامل مع كل واحد باستخدام app.get الخاصة بها،
app.put، app.delete، و app.post.
الآن يدعم Wxpress طريقة لتقسيم هذا العمل إلى
تطبيقات متعددة والعديد من Express،
والتي يمكن بعد ذلك دمجها معًا لتشكيل تطبيق Express الشامل.
هذا هو المكان الذي سوف نستفيد من راوتر إكسبريس
لتكون قادرة على بناء تطبيق إكسبريس مصغرة.
وبعد ذلك، داخل ملف Express Router،
سوف ندعم نقطة نهاية REST API لمجموعة واحدة من أجزاء REST API.
على سبيل المثال، للأطباق، والأطباق DisHid،
يمكن دعمها كلها في ملف واحد.
وبالمثل، في المهمة، ستدعم
نقطة نهاية REST API تسمى الترقيات والترويج/: promoID.
وبعد ذلك، ستدعم واجهة برمجة تطبيقات REST أخرى
وللقائد/القادة، و /القائد: Leaderd.
لذلك يمكن تنفيذ كل من هذه المجموعات بشكل منفصل كما العديد من
تطبيقات Express باستخدام Express Router.
لذلك هذا هو ما سوف أوضح لك
لنقطة نهاية الأطباق في الجزء التالي من هذا التمرين.
لذلك للقيام بذلك، ونحن ندرك أنه إذا وضعنا جميع الملفات في مجلد واحد،
ثم مرة أخرى هيكل المجلد الخاص بك سوف تبدو فوضوي.
لذا أفضلي هو إنشاء مجلد هنا باسم المسارات.
وسيحتوي مجلد المسارات هذا على جميع أجهزة التوجيه التي سأقوم
بتصميمها باستخدام جهاز التوجيه Express.
لذلك في مجلد المسارات، سأقوم بإنشاء ملف جديد يسمى
dishRouter.js.
وسيحتوي ملف dishRouter.js هذا
على تنفيذ معالجة نقطة نهاية REST API
لـ/الأطباق و /الأطباق: نقاط النهاية Dishid.
الآن كيف يمكننا الاستفادة من راوتر إكسبريس؟
دعونا نرى كيف يمكننا استخدامها.
الآن Express Router يأتي جنبا إلى جنب مع Express، لذلك نحن لسنا بحاجة إلى تثبيت بعد
وحدة عقدة أخرى.
بدلاً من ذلك، يمكننا العمل مع Express الذي قمنا بتثبيته بالفعل.
لذلك للقيام بذلك، في هذه المطالبة، اكتب، const Express
= تتطلب ('Express')؛.
لذلك لاحظ أنه، لأن هذا هو تطبيق صغير،
ونحن لا تزال تتطلب صريحة حتى في هذا الملف dishRouter.js.
ومن معرفتك بوحدات العقدة، بمجرد تحديد ملف جديد،
يصبح وحدة العقدة الخاصة به.
ويمكن بعد ذلك استيراد وحدة العقدة هذه في index.js.
لذلك ترى الاتصال بالفعل بين كيف يمكننا إعادة هيكلة
التطبيق لدينا في ملفات متعددة باستخدام وحدات عقدة.
لذلك سنقوم بتعيين تتطلب Express، ثم سنقول const
bodyParser تتطلب («محلل الجسم»).
لذلك قمنا بالفعل بتثبيت BodyParser في الخطوات السابقة من التمرين،
حتى نتمكن من استخدام ذلك.
الآن لاستخدام جهاز التوجيه Express،
اسمحوا لي أن أعلن const dishRouter = Express.R
وعلى Express، فإنه يدعم واجهة جهاز التوجيه هذه، لذلك
سنقول ببساطة Express.Router وهذا سيعلن dishRouter كجهاز توجيه Express.
لذلك في العديد من تطبيق Express،
نظرة ثاقبة هنا يمكنني التعامل مع هذا رمز DishRouter ذات الصلة هنا.
حتى مرة واحدة أعلن من هذا في جهاز التوجيه إكسبريس، ثم أستطيع أن أقول ديشروتر.
ثم على DishRouter، فإنه يدعم طريقة تسمى طريقة الطريق،
والتي يمكن أن تأخذ في نقطة نهاية كمعلمة.
لذلك أود ببساطة أن أعلن نقطة النهاية هذه أ /.
الآن، أنت تتسائل، ألا يجب أن تكون هذه أطباق؟
سترى قريبا جدا أنني بحاجة إلى تحميل هذا
الموجه إكسبريس في ملف index.js الخاص بي.
لذلك في ملف index.js الخاص بي، سأقوم بتثبيت هذا الموجه السريع في نقطة النهاية /الأطباق.
تركيب جهاز توجيه صريح، مرة أخرى،
مفهوم واحد آخر أريدك أن تفهمه.
مرة أخرى، سوف أوضح لك ذلك في فترة قصيرة.
الآن، جهاز الصحون. الطريق يعني أنه باستخدام هذا النهج،
ونحن نعلن نقطة النهاية في موقع واحد.
حيث يمكنك سلسلة كل الحصول على، PUT، POST،
وحذف الطرق بالفعل القيام بهذا الموجه الطبق.
الآن، عندما تنظر إلى index.js، انظر إلى الطريقة التي ضمنا هذا.
لذلك لدينا app.all ثم /أطباق، app.get/أطباق و /أطباق.
الآن، إذا كنت قد ارتكبت خطأ، وتعليمهم app.post
/أطباق بدلا من ذلك إذا كنت مجرد كتابة /طبق، ثم ماذا يحدث؟
لن يتم دعم عملية POST على الأطباق ولكن
سيتم دعمها على/ نقطة نهاية الطبق.
لتجنب هذه المشكلة، يدعم جهاز التوجيه السريع نقطة نهاية المسار هذه.
في نقطة نهاية المسار،
يمكنك ببساطة تحديد نقطة النهاية التي سيعمل عليها هذا الموجه.
وبعد ذلك، يتم وضع طريقة حذف جزء، وهذا ببساطة بالسلاسل في ذلك.
لذلك ستكون مجموعة واحدة من تطبيقات الأسلوب معًا.
لذلك هذا هو السبب في أنهم يستخدمون جهاز توجيه Express.
لذلك يأتي مع اثنين من
الدعم المفيد جدا للتأكد من أن التنفيذ الخاص بك هو الصحيح.
والآن بما أننا سنفعل ذلك كجهاز توجيه للأطباق،
ما سأفعله هو أنني سأقوم بإزالة هذا الشيء من هنا.
الآن، تلك الأطباق نقطة IDN، أنا ذاهب
إلى ترك ذلك لك كتمرين في مهمتك الأولى ولكن
نهاية الأطباق، وأنا ذاهب لقطع هذا، على طول الطريق إلى الجميع.
أنا ذاهب لقطع هذا من index.js5
ونقل ذلك إلى ديشروتر هنا.
الآن عندما أنقل ذلك إلى DishRouter، لا أحتاج إلى هذا app.all بعد الآن.
أنا ببساطة سلسلة ذلك في الطريق، لذلك سأقول ببساطة. all
وبعد ذلك لم أعد بحاجة إلى تعريف نقطة النهاية هذا هناك.
هذا كل شيء لذا
سيقول. كل شيء وبعد ذلك سنقول (ريك)، (ريس)، التالي.
وهذا، كل شيء يعمل على هذه النقطة
المحددة بالفعل هنا.
الآن، ليس هذا فقط، يمكننا سلسلة الطرق المتبقية.
لهذا السبب ترى أنني أزلت الفاصلة المنقوطة من هنا.
أنا ذاهب لحذف هذا التطبيق ومن ثم إرفاقه على ذلك.
حتى يحصل أيضا يحصل على تغيير في الطريق، وبعد ذلك يمكنني إزالة
هذا الجزء، وسوف تبقى معالجة بالضبط نفس كما كان من قبل.
لذلك بالمثل، وسوف إزالة, التطبيق هناك.
ثم مرة أخرى، احذف ذلك من المشاركة.
ونفس الشيء
لوضع,
وللحذف, نفس الشيء.
لذلك لاحظ أنه لا توجد فاصلة منقوطة هنا،
هنا أو هنا، ولكن آخر واحد، حذف، سيكون لها الفاصلة المنقوطة في مكانها.
لذا هذه المجموعة هي وحدة واحدة يتم تنفيذها باستخدام
جهاز توجيه الطبق على جهاز التوجيه هذا، وكل هذه هي مرتبطة ببعضها البعض.
وأيضا، بطبيعة الحال، مع حذف، وأنا بحاجة إلى إزالة هذه النقطة النهاية.
هذا كل شيء، انظر، بنية نظيفة من التعليمات البرمجية هنا.
بحيث أساسا، ينتهي تنفيذ ديشروتر، الحق،
تذكر، يتم تعريف هذا ديشروتر داخل ملف dishRouter.js.
الآن، أحتاج إلى تصدير هذا من وحدة العقدة هذه.
لذا لتصدير هذا، سأذهب إلى الأسفل هنا
وسأقول module.exports
وأقول، DishRouter.
هذا هو.
حتى الآن، بلدي ديشروتر هو تصدير كل ما أحتاج.
الآن، أنت تنظر إلى هذا وتقول، ماذا عن طبق القولون.
هذا سيكون جزء من مهمتك الأولى
ليس ذلك فقط، فسوف تقوم بتنفيذ
نقطتي نهايتين إضافيتين لـ REST API أيضًا، والعروض الترويجية والقادة.
ولكن هذا يظهر لك بالفعل بنية ما
يبدو عليه تنفيذ أجهزة التوجيه Express لدعم API res.
لذلك هذا هو لالصحون. الطريق.
وشيء أخير قبل أن أنسى،
يجب أن نقول dishrouter.Use (bodyparser.json ()).
الآن بمجرد الانتهاء من تنفيذ ديشروتر،
يمكننا الآن الذهاب إلى ملف index.js.
منذ هذا DishRouter هو وحدة عقدة أخرى، وحدة عقدة غرامة مع ذلك.
لذلك نحن بحاجة إلى استيراد هذا في طلبنا.
حتى هنا، أنا ذاهب لاستيراد كونست
ديشروتر يساوي تتطلب.
الآن بما أن هذه وحدة عقدة تستند إلى ملف،
سأقول. /المساربات/جهاز توجيه الأطباق.
وبمجرد أن أعلن لهم هناك، ثم أنزل إلى رمز هنا.
وهناك حق، أقول app.use.
وأنا جبل جهاز التوجيه في نقطة النهاية.
فكيف يمكنني تحميل جهاز التوجيه؟
المعلمة الأولى هنا، وسوف تحدد أطباق مائلة.
والمعلمة الثانية، حدد ديشروتر.
وهذا كل شيء.
لذلك ما يعنيه هذا هو أنه في طلبي السريع،
سيتم التعامل مع أي طلب قادم إلى نقطة نهاية الأطباق المائلة هذه بواسطة DishRouter،
وسيتم ذلك بواسطة الرمز الموجود هنا،
لأننا قلنا DishRouter الطريق، لذا لاحظ أن هذا يقول شرطة مائلة،
مما يعني أن هذا هي التي شنت في نقطة النهاية أطباق مائلة.
لذلك هذا هو السبب في أي شيء يأتي من خلال أطباق مائلة سيتم إرسالها إلى هذا
وسيتم التعامل معها من قبل هذا.
تلميح كبير بالنسبة لك للتفكير في كيفية تنفيذ
نقطة نهاية معرف طبق القولون.
سوف لا تزال تستخدم نفس الملف dishRouter.js أيضا لتنفيذ دعم
ذلك، /dished /: نقطة نهاية dished.
هذا تلميح كبير آخر بالنسبة لك، حسنا.
مع هذه التغييرات، دعونا حفظ التغييرات التي قمنا بها
على التطبيق لدينا ومن ثم إعادة تشغيل الخادم لدينا ومن
ثم نلقي نظرة على كيفية الخادم لدينا هو الذهاب للقيام بعملها.
الذهاب إلى المحطة، اسمحوا لي إعادة تشغيل هذا الخادم عن طريق كتابة بداية npm.
وبمجرد تشغيل الخادم، سأذهب إلى ساعي البريد
وأرسل طلبات من ساعي البريد إلى هذا الخادم.
الذهاب إلى ساعي البريد، والآن أنا أعلم أن خادمي يدعم فقط
نقطة نهاية الأطباق، لقد نفذت جزء معرف الطبق منه.
لذلك اسمحوا لي أن أرسل طلب الحصول على الأطباق المضيفة المحلية
وسترى أنه يعمل تماما كما كان من قبل.
الآن إذا كنت قد فعلت طلب سابق في المشاركة، فيمكنك ببساطة النقر على ذلك
ثم إعادة إرسال هذا الطلب.
وضع العملية لا يعمل، ما بعد العملية، يعمل كما ترون هناك.
ثم دعونا نتسبب في عملية الحذف على الأطباق.
وتقول حذف جميع الأطباق كما هو متوقع.
لذلك هذا هو تنفيذ دعم أبي بقية باستخدام جهاز التوجيه السريع.
مع هذا، نكمل النصف الثاني من هذا التمرين.
هذا هو الوقت المناسب بالنسبة لك للقيام تعليق الحصول على مع جهاز التوجيه السريع الرسالة.
الآن بعد أن أكملنا هذا التمرين حيث رأينا كيف
يمكن استخدام Express لدعم تنفيذ دعم نقطة نهاية API Res على خادمنا،
وكذلك استخدام جهاز التوجيه Express،
فقد حان الوقت للانتقال إلى المهمة الأولى التي تتبع هذا الدرس.
[ موسيقى]