1
00:00:00,000 --> 00:00:04,528
[MUSIC]

2
00:00:04,528 --> 00:00:09,392
الآن بعد أن فهمنا REST API ونعبر عن الدعم

3
00:00:09,392 --> 00:00:13,293
لـ REST API، دعنا ننتقل إلى التمرين التالي.

4
00:00:13,293 --> 00:00:17,168
حيث سننظر في كيفية تطوير واجهة برمجة تطبيقات REST

5
00:00:17,168 --> 00:00:19,972
باستخدام الدعم المقدم من خلال express.

6
00:00:19,972 --> 00:00:23,110
وأيضا، استخدام جهاز التوجيه السريع،

7
00:00:23,110 --> 00:00:28,110
مما يتيح لنا تنظيم التعليمات البرمجية لدينا بطريقة أكثر ملاءمة

8
00:00:28,110 --> 00:00:33,231
عندما تحتاج إلى دعم عدد كبير من نقاط النهاية أبي ريست.

9
00:00:35,080 --> 00:00:39,965
للبدء، والاستمرار في مجلد عقدة اكسبرس

10
00:00:39,965 --> 00:00:44,565
كنا نعمل على خادم الويب القائم على التعبير.

11
00:00:44,565 --> 00:00:50,546
في موجه، دعونا تثبيت محلل الجسم،

12
00:00:50,546 --> 00:00:57,729
لذلك للقيام بذلك، اكتب npm تثبيت محلل الجسم - حفظ.

13
00:00:57,729 --> 00:01:02,674
ونحن نستخدم الإصدار 1.18.3 من

14
00:01:02,674 --> 00:01:06,689
محلل الجسم في هذه الدورة هنا.

15
00:01:06,689 --> 00:01:12,151
الآن مرة واحدة لدينا تثبيت محلل الجسم، ثم انتقل إلى التعليمات البرمجية لدينا.

16
00:01:12,151 --> 00:01:16,476
في index.js5،

17
00:01:16,476 --> 00:01:22,723
اسمحوا لي أن تتطلب بوديبارسر، لذلك

18
00:01:22,723 --> 00:01:28,492
سنقول كونست

19
00:01:28,492 --> 00:01:33,553
بوديبارسر تتطلب محلل الجسم.

20
00:01:33,553 --> 00:01:39,891
وبعد ذلك كلما كنت بحاجة إلى استخدام البرامج الوسيطة،

21
00:01:39,891 --> 00:01:46,558
ستقول، app.use (bodyParser.json).

22
00:01:46,558 --> 00:01:51,782
لذلك هذا يسمح لنا لتحليل نص رسالة الطلب،

23
00:01:51,782 --> 00:01:54,989
والتي يتم تنسيقها بتنسيق JSON.

24
00:01:57,466 --> 00:02:03,374
بمجرد الانتهاء من ذلك، دعونا نبدأ في

25
00:02:03,374 --> 00:02:08,678
بناء دعم واجهة برمجة تطبيقات REST لنقطة النهاية/الأطباق.

26
00:02:08,678 --> 00:02:12,797
يتم دعم استخدام

27
00:02:12,797 --> 00:02:16,339
طرق app.all و app.get و وضع و نشر و حذف بواسطة Express.

28
00:02:16,339 --> 00:02:21,692
لذلك للقيام بذلك، اسمحوا لي أن أبدأ بقول

29
00:02:21,692 --> 00:02:26,725
app.all، والمعلمات الأولى

30
00:02:26,725 --> 00:02:31,937
التي يأخذ app.all هي نقطة النهاية.

31
00:02:31,937 --> 00:02:36,360
لذلك في هذه الحالة، أنا تحديد نقطة النهاية من/الأطباق.

32
00:02:36,360 --> 00:02:43,560
ثم المعلمة الثانية هي وظيفة رد الاتصال،

33
00:02:43,560 --> 00:02:49,564
req، res، التالي، المعلمات الثلاثة هنا.

34
00:02:49,564 --> 00:02:56,518
وداخل وظيفة رد الاتصال هذه، سنقوم بمعالجة الطلب الوارد.

35
00:02:56,518 --> 00:03:01,740
لذلك سنقول، عندما يأتي الطلب، لجميع الطلبات.

36
00:03:01,740 --> 00:03:06,993
لذلك عندما نقول app.all، بغض النظر عن الطريقة التي يتم استدعاؤها

37
00:03:06,993 --> 00:03:12,864
، الحصول على، وضع، نشر، أو حذف، لنقطة نهاية واجهة برمجة تطبيقات REST،

38
00:03:12,864 --> 00:03:17,190
سيتم تنفيذ هذا الرمز أولاً بشكل افتراضي هنا.

39
00:03:17,190 --> 00:03:26,376
لذلك سنقول الدقة StatusCode هو 200

40
00:03:26,376 --> 00:03:31,889
ثم Res.Setheader

41
00:03:31,889 --> 00:03:39,248
ودعونا نقول نص نوع المحتوى.

42
00:03:39,248 --> 00:03:44,290
سنرسل نصًا عاديًا الآن، بدلاً من نص HTML.

43
00:03:44,290 --> 00:03:47,575
يجب أن يكون هذا كافياً لنقاط نهاية REST API.

44
00:03:47,575 --> 00:03:52,420
في وقت لاحق، سوف نرسل البيانات في شكل JSON بمجرد

45
00:03:52,420 --> 00:03:54,640
أن نتمكن من استرداد البيانات من قاعدة البيانات.

46
00:03:54,640 --> 00:03:57,340
لذلك سوف يأتي في واحدة من التدريبات في وقت لاحق.

47
00:03:57,340 --> 00:04:04,389
في الوقت الحالي، سنقوم ببساطة بإرسال ردود نص عادي مرة أخرى إلى العميل.

48
00:04:04,389 --> 00:04:10,785
الآن بعد هذين، لم تكتمل البرامج الوسيطة هنا بعد.

49
00:04:10,785 --> 00:04:17,590
لذلك سوف ندعو الوظيفة التالية هنا، وبالتالي فإن التالي كما ترى يشير إلى هذا التالي.

50
00:04:17,590 --> 00:04:24,954
لذلك عند الاتصال التالي، ما يعنيه هو أنه سيستمر في البحث عن

51
00:04:24,954 --> 00:04:29,665
مواصفات إضافية أسفل هنا،

52
00:04:29,665 --> 00:04:33,790
والتي سوف تتطابق مع هذه الأطباق نقطة النهاية.

53
00:04:33,790 --> 00:04:38,282
لذلك سيتم القيام بذلك لجميع الطلبات، والحصول على، ووضع، ونشر

54
00:04:38,282 --> 00:04:42,712
، وحذف، على الأطباق، وسوف تستمر إلى واحد المقبل.

55
00:04:42,712 --> 00:04:48,436
حتى هنا، لنفترض أننا نحصل

56
00:04:48,436 --> 00:04:53,792
على طلب الحصول على الأطباق، مما يعني أنه الآن،

57
00:04:53,792 --> 00:04:58,961
إذا حصلنا على طلب الحصول على الأطباق،

58
00:04:58,961 --> 00:05:04,133
أولا سيتم تنفيذ هذا،

59
00:05:04,133 --> 00:05:09,304
ومن ثم سيتم تمرير req و res

60
00:05:09,304 --> 00:05:13,760
إلى هذه المكالمة الثانية هنا.

61
00:05:13,760 --> 00:05:17,481
لذا في هذه الحالة، لن أحتاج بعد الآن،

62
00:05:17,481 --> 00:05:21,335
لأنني لن أتصل بالمزيد.

63
00:05:21,335 --> 00:05:26,444
سأكمل التعامل مع الحق داخل هذه الطريقة هنا نفسها.

64
00:05:26,444 --> 00:05:31,337
لذلك إذا قمنا بتعديل req أو res داخل هذا الرمز،

65
00:05:31,337 --> 00:05:36,607
فعند استدعاء التالي،

66
00:05:36,607 --> 00:05:41,130
سيتم تمرير هذا الكائن المعدل كمعلمة لهذا.

67
00:05:41,130 --> 00:05:45,698
حتى إذا كنت قد أصدرت طلب الحصول على الأطباق، لذلك هذا هو ما سيتم

68
00:05:45,698 --> 00:05:50,202
تنفيذه مباشرة بعد هذا، لذلك هذا المقبل سوف يسبب لتمرير على.

69
00:05:50,202 --> 00:05:55,836
ثم هنا، لاحظت أننا قمنا بتعديل كائن الدقة هنا.

70
00:05:55,836 --> 00:06:02,770
وسيحمل التعديل كمعلمة إدخال لهذه الوظيفة هنا.

71
00:06:03,940 --> 00:06:09,380
حتى داخل وظيفة الحصول على هذه، يمكننا أن نقول، على سبيل المثال، في هذه اللحظة،

72
00:06:09,380 --> 00:06:15,197
أنا ببساطة ذاهب لإرسال رسالة بسيطة، ونحن نقول،

73
00:06:15,197 --> 00:06:20,170
سوف ترسل كل الأطباق لك.

74
00:06:20,170 --> 00:06:25,650
في وقت لاحق، عندما نسترد معلومات الأطباق من قاعدة البيانات

75
00:06:25,650 --> 00:06:31,036
بعد

76
00:06:31,036 --> 00:06:36,534
أن نتعلم عن MongoDB، فإن هذه الوظيفة ستعود إلى بيانات JSON مرة أخرى، نظرًا لأنها في طلب الحصول هنا.

77
00:06:36,534 --> 00:06:40,566
الآن في الدورة السابقة، كنا قد استخدمنا خادم JSON،

78
00:06:40,566 --> 00:06:44,457
وكان خادم JSON يوفر بالفعل كل هذه بالنسبة لنا.

79
00:06:44,457 --> 00:06:46,965
الآن أنت ترى كيف ستقوم

80
00:06:46,965 --> 00:06:50,268
بإنشاء خادم حقيقي سيعالج الطلب الوارد.

81
00:06:50,268 --> 00:06:53,139
ثم قم بإنشاء استجابة مناسبة

82
00:06:53,139 --> 00:06:57,857
وإرسالها إليك استجابة للطلب المستلم من جانب العميل.

83
00:06:57,857 --> 00:07:02,611
وهذا هو المكان الذي يعبر فيه المستخدم، كما نرى هنا، مفيد.

84
00:07:02,611 --> 00:07:06,971
لذلك قمنا بالتعامل مع الحصول على,

85
00:07:06,971 --> 00:07:14,387
دعونا التعامل مع آخر أيضا على الأطباق هنا.

86
00:07:16,120 --> 00:07:21,064
ومرة أخرى، ستكون المعلمات (req، res،

87
00:07:21,064 --> 00:07:26,722
التالي)، وستكون هذه الوظيفة التي يتم استدعاؤها هنا.

88
00:07:26,722 --> 00:07:31,606
الآن، عندما يتم استلام طلب الحصول، لأنك هنا، أنت تتصل بـ rest.end.

89
00:07:31,606 --> 00:07:36,982
بحيث

90
00:07:36,982 --> 00:07:42,130
تكون هذه الغاية هي التعامل مع طلب الحصول ولا تؤدي إلى إرسال الرد مرة أخرى، أو الرد ليتم إرساله مرة أخرى إلى العميل في هذه المرحلة.

91
00:07:42,130 --> 00:07:47,050
الآن، إذا حصلت على طلب مشاركة على الأطباق، مرة أخرى، سيتم تنفيذ هذا الرمز بأكمله.

92
00:07:47,050 --> 00:07:52,859
وبعد ذلك، وبسبب هذا التالي، من شأنها أن تسقط في هذه الوظيفة استدعاء هنا.

93
00:07:52,859 --> 00:07:57,000
ثم سيتم تنفيذ التعليمات البرمجية هنا، لذلك عندما تتلقى

94
00:07:59,610 --> 00:08:04,820
وظيفة طلب المشاركة القادم من الخادم سوف يحمل بعض المعلومات

95
00:08:04,820 --> 00:08:08,710
في نص الرسالة في شكل بيانات JSON.

96
00:08:08,710 --> 00:08:13,650
سيرون ما هو شكل بيانات JSON عندما

97
00:08:13,650 --> 00:08:18,910
ننظر لاحقًا عند اختبار نقطة النهاية باستخدام post net.

98
00:08:18,910 --> 00:08:24,700
سأعرض لك ما سيحتوي عليه نص رسالة طلب المشاركة.

99
00:08:24,700 --> 00:08:27,710
لكن في هذه المرحلة، ما سأفعله هو،

100
00:08:27,710 --> 00:08:33,420
سأستخرج المعلومات من الجسم.

101
00:08:33,420 --> 00:08:38,545
وهكذا هنا عندما نستخدم محلل الجسم، ما يحدث هو أنه

102
00:08:38,545 --> 00:08:44,541
للطلب الوارد، سيتم تحليل نص الطلب الوارد

103
00:08:44,541 --> 00:08:48,237
ثم إضافته إلى كائن req كـ req.body.

104
00:08:48,237 --> 00:08:52,843
وبالتالي فإن req.body تعطيك الوصول إلى كل ما هو داخل هذا الجسم

105
00:08:52,843 --> 00:08:54,050
من الرسالة.

106
00:08:54,050 --> 00:08:58,642
لذلك، عندما أرسل الطلب،

107
00:08:58,642 --> 00:09:04,339
سأضيف معلومات إلى

108
00:09:04,339 --> 00:09:10,034
نص الطلب في شكل سلسلة JSON التي

109
00:09:10,034 --> 00:09:15,570
تحتوي على اسم ووصف.

110
00:09:15,570 --> 00:09:20,081
لذلك أنا ذاهب لاستخراج هذه المعلومات اثنين

111
00:09:20,081 --> 00:09:26,080
ومن ثم طباعتها ومن ثم إرسالها مرة أخرى إلى العميل في رسالة الرد.

112
00:09:26,080 --> 00:09:32,840
حتى أستطيع أن أقول، req.body.ومن ثم الاسم.

113
00:09:32,840 --> 00:09:38,298
وبالتالي فإن التوقع هو أنه عندما يرسل العميل رسالة النشر،

114
00:09:38,298 --> 00:09:42,183
سيحتوي نص رسالة النشر على سلسلة JSON،

115
00:09:42,183 --> 00:09:47,108
والتي ستحتوي أيضًا على خاصية الاسم في سلسلة JSON.

116
00:09:47,108 --> 00:09:52,646
حتى req.body.name زائد

117
00:09:52,646 --> 00:09:57,952
وهذا هو المكان الذي سوف تدرج

118
00:09:57,952 --> 00:10:06,970
مع التفاصيل: + req.body.description.

119
00:10:06,970 --> 00:10:11,654
لذلك مهما كانت سلسلة JSON تحتوي في req.body، ولكن

120
00:10:11,654 --> 00:10:15,963
سيتم تحليل سلسلة JSON في كائن JavaScript

121
00:10:15,963 --> 00:10:19,909
وإضافتها إلى كائن الطلب كهيئة خاصية.

122
00:10:19,909 --> 00:10:22,971
يشير كائن JavaScript إلى أي شيء

123
00:10:22,971 --> 00:10:27,440
جاء كسلسلة JSON في نص رسالة الطلب.

124
00:10:27,440 --> 00:10:31,750
لذلك هذا هو السبب في أنني قادر على تحليل خاصية الاسم، خاصية الوصف،

125
00:10:31,750 --> 00:10:38,000
يمكن أن يكون لديك خاصية السعر، خاصية الصورة، وكل ذلك.

126
00:10:38,000 --> 00:10:42,260
لذلك إذا كنت قد أخذت الدورة السابقة، فقد رأيت بنية

127
00:10:42,260 --> 00:10:48,850
كائن طبق، في شكل سلسلة JSON أو كائن JavaScript هناك.

128
00:10:48,850 --> 00:10:52,920
لذا، يبدو الاسم والوصف مألوفًا لك.

129
00:10:52,920 --> 00:10:55,400
لذلك بالضبط ما أستخدمه هنا.

130
00:10:55,400 --> 00:11:00,823
الآن أنا فقط استخراج الاسم والوصف من الجثة

131
00:11:00,823 --> 00:11:04,220
ثم إرسالها مرة أخرى إلى العميل في هذه الهيئة.

132
00:11:04,220 --> 00:11:09,460
لذلك أنا فقط إنشاء رسالة الرد هذه هنا باستخدام المعلومات

133
00:11:09,460 --> 00:11:13,150
من نص رسالة الطلب، ومن ثم إرسالها مرة أخرى إلى العميل.

134
00:11:13,150 --> 00:11:17,830
وبهذه الطريقة يمكنني تأكيد أن الخادم يتلقى كل ما أرسله

135
00:11:17,830 --> 00:11:19,930
في نص الرسالة.

136
00:11:19,930 --> 00:11:21,820
لذلك هذا هو طلب المشاركة.

137
00:11:23,390 --> 00:11:30,620
الآن لوضع، اسمحوا لي فقط نسخ هذا، ومن ثم لصقه هنا.

138
00:11:30,620 --> 00:11:35,360
ثم لوضع على تلك الأطباق نقطة النهاية،

139
00:11:35,360 --> 00:11:39,100
لأنه وضع على نهاية الأطباق لا معنى له.

140
00:11:39,100 --> 00:11:44,440
تعني المشاركة أنك تقوم بنشر طبق جديد على الخوادم.

141
00:11:44,440 --> 00:11:50,992
A وضع على نقطة نهاية الأطباق لا معنى له،

142
00:11:50,992 --> 00:11:55,516
لذلك هنا ما سأقوم به هو أنني

143
00:11:55,516 --> 00:12:00,664
ذاهب للرد مرة أخرى مع

144
00:12:00,664 --> 00:12:06,660
عملية PUT الرسالة غير معتمدة على/الأطباق.

145
00:12:06,660 --> 00:12:14,790
وبالإضافة إلى ذلك، وسوف أيضا, تضمين رمز الحالة 403.

146
00:12:14,790 --> 00:12:19,987
403 يعني تشغيلها غير معتمد.

147
00:12:19,987 --> 00:12:24,319
لذلك إذا نظرت إلى جدول رموز استجابة HTTP،

148
00:12:24,319 --> 00:12:30,600
فسترى الرمز المقابل 403 ما يمثله هناك.

149
00:12:30,600 --> 00:12:34,650
لذلك هذا هو ما أستخدمه للنشر.

150
00:12:34,650 --> 00:12:39,879
لحذف، أنا ذاهب

151
00:12:39,879 --> 00:12:44,777
لنسخ هذا واحد وحذف أنا ذاهب إلى،

152
00:12:47,537 --> 00:12:55,960
ببساطة تحليل هذا، وبعد ذلك سنقول، حذف جميع الأطباق.

153
00:12:55,960 --> 00:13:02,200
لذلك عند إرسال طلب حذف على نقطة النهاية ذلك/الأطباق.

154
00:13:02,200 --> 00:13:04,900
يتم تفسيره

155
00:13:04,900 --> 00:13:08,960
على أنه يعني أن العميل يريد حذف جميع معلومات الأطباق على جانب الخادم.

156
00:13:08,960 --> 00:13:11,300
الآن، هذه عملية خطيرة، لذا

157
00:13:11,300 --> 00:13:15,540
تأكد من عدم السماح للمستخدمين الشركاء بالقيام بذلك.

158
00:13:15,540 --> 00:13:17,750
في وقت لاحق، عندما ندرس المصادقة،

159
00:13:17,750 --> 00:13:23,220
سنرى كيف يمكننا التحقق من هذه العملية للمستخدمين ذوي الامتيازات فقط.

160
00:13:23,220 --> 00:13:28,620
ولكن مرة أخرى، كما ترون، هذه عملية خطيرة، لذا ضع في اعتبارك ذلك.

161
00:13:28,620 --> 00:13:33,340
حتى الآن ترى أنه في نهاية الأطباق، لدينا الحصول على، وضع، نشر،

162
00:13:33,340 --> 00:13:35,130
وحذف الدعم.

163
00:13:35,130 --> 00:13:41,520
دعونا أيضا دعم ذلك على الأطباق /: نقطة النهاية dished.

164
00:13:41,520 --> 00:13:46,280
لذلك أنا ذاهب لنسخ الحصول على، ووضع، ونشر، وحذف الطرق من هنا،

165
00:13:48,530 --> 00:13:54,175
ومن ثم يدعو كل منهم أيضا أن تكون معتمدة على

166
00:13:54,175 --> 00:14:00,360
الأطباق /: dished.

167
00:14:00,360 --> 00:14:06,913
لذلك هذا هو للحصول على، ونحن نسخ ذلك

168
00:14:06,913 --> 00:14:11,480
ونشر، ووضع، وحذف.

169
00:14:11,480 --> 00:14:13,330
كيف نتعامل مع كل من هذه؟

170
00:14:13,330 --> 00:14:19,460
لذلك للحصول على، إذا حصلت على طلب على أطباق/dished،

171
00:14:19,460 --> 00:14:22,750
ما أود القيام به هو استخراج هذه المعلمة

172
00:14:22,750 --> 00:14:27,000
ثم إرسالها مرة أخرى في الطلب، في رسالة الرد.

173
00:14:27,000 --> 00:14:29,725
لذلك سنقول، سنرسل،

174
00:14:39,018 --> 00:14:41,625
تفاصيل الطبق.

175
00:14:44,584 --> 00:14:46,910
الآن أي طبق؟

176
00:14:46,910 --> 00:14:51,570
هذه المعلومات موجودة في المعلمة.

177
00:14:51,570 --> 00:14:55,335
لذلك يمكن استرداد قيمة المعلمة هذه من

178
00:14:55,335 --> 00:15:02,300
Req.params.dished.

179
00:15:02,300 --> 00:15:07,510
لذلك هذا DisHid، كما ترى، يجب أن يتطابق الاسم الذي تستخدمه هنا مع هذه القيمة هنا.

180
00:15:07,510 --> 00:15:09,370
حتى إذا كنت مجرد رؤية معرف هنا،

181
00:15:09,370 --> 00:15:13,220
وهذا ينبغي أيضا أن يكون المقابلة سيد معين هنا.

182
00:15:13,220 --> 00:15:17,920
لذلك لا يعني الاسم نفسه أي شيء، باستثناء أن اسم المعلمة هذا

183
00:15:17,920 --> 00:15:23,400
وهذا يجب أن يتطابق مع بعضها البعض، بحيث يمكنك استرداد المعلومات بشكل صحيح.

184
00:15:25,090 --> 00:15:30,470
لذلك سنقول، وإرسال المعلمات طبق DisHid

185
00:15:30,470 --> 00:15:37,360
وبعد ذلك سنقول لك.

186
00:15:37,360 --> 00:15:43,160
وبهذه الطريقة نعرف أن الخادم يحصل على معلمة الطبق..

187
00:15:43,160 --> 00:15:47,350
حتى إذا قلت /أطباق/23 هناك عدة ردود

188
00:15:47,350 --> 00:15:52,350
سوف ترسل تفاصيل الطبق 23 لك وهلم جرا.

189
00:15:52,350 --> 00:15:57,632
لذلك سنرى كيف يعمل عندما نستخدم المشاركة لاختبار هذا الخادم.

190
00:15:57,632 --> 00:15:59,584
الآن للبريد

191
00:15:59,584 --> 00:16:03,530
للنشر، لن يتم دعم هذه الطريقة،

192
00:16:03,530 --> 00:16:07,060
لذلك سأقوم فقط بنسخ هذا الجزء.

193
00:16:07,060 --> 00:16:12,205
فإنه ليس من المنطقي أن تفعل وظيفة على معرف طبق معين،

194
00:16:12,205 --> 00:16:16,375
لأنك لا تحاول إضافة طبق جديد.

195
00:16:16,375 --> 00:16:21,360
ولكنك تريد تعديل، ويتم التعديل باستخدام عملية وضع.

196
00:16:21,360 --> 00:16:28,111
لذلك سنقول، عملية POST غير معتمدة على/الأطباق.

197
00:16:33,331 --> 00:16:36,360
ثم أنا ذاهب لإضافة في.

198
00:16:39,750 --> 00:16:43,197
Req.Params.dashid.

199
00:16:43,197 --> 00:16:47,535
لذلك هذا سوف يرسل مرة أخرى قائلا آخر غير معتمد على

200
00:16:47,535 --> 00:16:50,752
الأطباق /23 في رسالة الرد.

201
00:16:50,752 --> 00:16:55,926
الآن، لبوت، لبوت، سنقول،

202
00:16:59,902 --> 00:17:08,799
res.end ويقول ويل، تحديث الطبق.

203
00:17:13,902 --> 00:17:20,978
Req.Params.dashid.

204
00:17:28,915 --> 00:17:31,675
أو بالأحرى، سنفعل ذلك بهذه الطريقة.

205
00:17:33,785 --> 00:17:39,141
سأكتب أولاً، لذلك

206
00:17:39,141 --> 00:17:45,345
يمكن استخدام res.write لإضافة سطر إلى رسالة الرد.

207
00:17:45,345 --> 00:17:50,077
لذلك سنقول تحديث الطبق.

208
00:17:50,077 --> 00:17:58,655
وسنقول (ريك.بارامز) مرهق

209
00:17:58,655 --> 00:18:06,245
وبما أن هذه عملية PUT، وإذا كان الجسم يحتوي على سلسلة JSON،

210
00:18:06,245 --> 00:18:10,277
والتي تحتوي على تفاصيل الطبق،

211
00:18:10,277 --> 00:18:17,310
يمكنني استخراج سلسلة JSON لأننا نستخدم محلل الجسم.

212
00:18:17,310 --> 00:18:21,649
لذلك سنقول سوف

213
00:18:21,649 --> 00:18:26,569
تحديث الطبق:.

214
00:18:30,234 --> 00:18:31,924
أي طبق؟

215
00:18:31,924 --> 00:18:34,822
req.body.name.

216
00:18:38,122 --> 00:18:38,657
بالإضافة إلى ذلك

217
00:18:40,531 --> 00:18:45,701
مع التفاصيل،

218
00:18:45,701 --> 00:18:55,250
req.body.description.

219
00:18:59,320 --> 00:19:08,800
الآن, عندما نقوم بتحديث الطبق, أريد أن أضيف, خط جديد هناك.

220
00:19:08,800 --> 00:19:11,411
لذا سأقول «/n» هناك.

221
00:19:14,500 --> 00:19:19,257
لذلك عندما تقوم بعمل PUT، فأنت ترسل المعلومات حول معرف الطبق الذي

222
00:19:19,257 --> 00:19:22,674
تقوم بتحديثه، وكذلك التفاصيل التي تقوم بتحديثها.

223
00:19:22,674 --> 00:19:26,997
الاسم والوصف،

224
00:19:26,997 --> 00:19:34,318
الذي يجب أن يكون في نص رسالة PUT هناك.

225
00:19:34,318 --> 00:19:41,868
لحذف, وسوف أقول حذف طبق, وreq.Params.dished.

226
00:19:41,868 --> 00:19:47,970
وهكذا للحذف، هذه هي العملية التي سيتم تنفيذها.

227
00:19:47,970 --> 00:19:51,607
لذلك ترى أن لدينا الآن الحصول على، وضع، نشر،

228
00:19:51,607 --> 00:19:55,838
وحذف العمليات على الصحون/dished، نقطة النهاية،

229
00:19:55,838 --> 00:20:00,590
وأيضا الحصول على، وضع، نشر العمليات على/الأطباق، نقطة النهاية.

230
00:20:00,590 --> 00:20:03,765
لذلك دعونا الآن حفظ التغييرات.

231
00:20:03,765 --> 00:20:05,387
وبدء الخادم الخاص بنا مرة أخرى.

232
00:20:08,245 --> 00:20:10,643
بدء تشغيل الخادم عن طريق القول بداية npm.

233
00:20:10,643 --> 00:20:15,611
دعونا نذهب الآن إلى ساعي البريد وإرسال بعض الطلبات إلى هذا الخادم

234
00:20:15,611 --> 00:20:17,270
ونرى ما يعود.

235
00:20:17,270 --> 00:20:22,287
اسمحوا لي أولا إصدار الحصول على المضيف المحلي 3,000 ونرى ما يعود.

236
00:20:22,287 --> 00:20:26,832
لذلك عند إرسال طلب للحصول على المضيف المحلي 3،000،

237
00:20:26,832 --> 00:20:30,798
فإنه لا يزال يعيد صفحة HTML بداية الفهرس،

238
00:20:30,798 --> 00:20:35,069
لأن معالجة الملف الثابت لا تزال في مكانها.

239
00:20:35,069 --> 00:20:41,564
الآن اسمحوا لي أن أرسل طلب الحصول إلى المضيف المحلي: 3000/أطباق، وهذا،

240
00:20:41,564 --> 00:20:48,383
كما تتوقع، سوف ترسل رد قائلا أننا سوف ترسل جميع الأطباق لك.

241
00:20:48,383 --> 00:20:56,350
الآن، دعونا نرسل طلب بوست إلى المضيف المحلي: 3000/أطباق.

242
00:20:56,350 --> 00:21:01,200
لذلك هذا هو المكان الذي يمكنك تغيير الطرق المختلفة التي تريد تنفيذها.

243
00:21:01,200 --> 00:21:02,880
ولكن عندما ترسل رسالة،

244
00:21:02,880 --> 00:21:08,570
تريد تضمين بعض التفاصيل في نص الرسالة لأن

245
00:21:08,570 --> 00:21:12,920
هناك شخص ما يتوقع منك إرسال معلومات في نص الرسالة.

246
00:21:12,920 --> 00:21:17,967
حتى انقر على الجسم هنا وانقر على الخام هنا.

247
00:21:17,967 --> 00:21:23,395
وبعد ذلك، بالنسبة للنص، يمكنك تحديد هذا إلى JSON حتى

248
00:21:23,395 --> 00:21:26,377
استخدم التطبيق JSON.

249
00:21:26,377 --> 00:21:31,081
لذلك سيكون نوع المحتوى تطبيق/JSON في

250
00:21:31,081 --> 00:21:34,220
الطلب الذي ترسله.

251
00:21:34,220 --> 00:21:38,658
لذلك بما أن هذا كائن JSON، لذلك

252
00:21:38,658 --> 00:21:43,103
داخل الأقواس، سأقول الاسم.

253
00:21:45,320 --> 00:21:50,727
أنا ببساطة اكتب في الاختبار،

254
00:21:50,727 --> 00:21:53,939
والوصف.

255
00:22:01,212 --> 00:22:05,760
بعض المعلومات القياسية هنا، لذلك ترى أن هذه هي سلسلة JSON التي

256
00:22:05,760 --> 00:22:10,900
تحتوي على اثنين من الخصائص والاسم والوصف والقيم المقابلة.

257
00:22:10,900 --> 00:22:13,858
لذلك دعونا نرسل طلب آخر إلى الخادم.

258
00:22:13,858 --> 00:22:18,294
عند إرسال طلب آخر إلى الخادم، كما ترى،

259
00:22:18,294 --> 00:22:24,290
في الرد تقول ستضيف الطبق: تفاصيل أسبوع الاختبار: الوصف.

260
00:22:24,290 --> 00:22:30,368
كما ترون، يتم استخراج اثنين من المعلومات

261
00:22:30,368 --> 00:22:35,772
من نص أن JSON طلب [غير مسموع] ومن ثم تضمينها في الرد.

262
00:22:35,772 --> 00:22:39,459
دعونا نرسل طلب وضع للأطباق.

263
00:22:39,459 --> 00:22:43,029
عند إرسال طلب وضع للأطباق، كما ترى،

264
00:22:43,029 --> 00:22:48,654
تقول عملية PUT غير معتمدة على/أطباق، وإلقاء نظرة على الحالة هنا.

265
00:22:48,654 --> 00:22:52,580
وتقول الحالة: 403 ممنوع.

266
00:22:52,580 --> 00:22:57,570
لذلك لا يسمح بهذه العملية على نقطة النهاية هذه.

267
00:22:57,570 --> 00:23:01,430
دعونا نفعل عملية DELETE على الأطباق.

268
00:23:01,430 --> 00:23:04,240
عند حذف العملية على الأطباق،

269
00:23:04,240 --> 00:23:09,270
ثم ستلاحظ أنه يقول حذف جميع الأطباق.

270
00:23:09,270 --> 00:23:11,560
إذن هذا هو الرد الذي ستعودين إليه

271
00:23:12,920 --> 00:23:15,410
لذلك ترى أن وظيفة الحصول على، ووضع

272
00:23:15,410 --> 00:23:20,610
وحذف على /days نقطة النهاية يعمل كما هو متوقع.

273
00:23:20,610 --> 00:23:24,507
الآن دعونا نفعل الحصول على الأطباق /23.

274
00:23:24,507 --> 00:23:29,017
حتى 23 هنا هو

275
00:23:29,017 --> 00:23:34,710
المعلمة، معرف الطبق الذي تريد الحصول عليه.

276
00:23:34,710 --> 00:23:38,716
حتى عند إرسال طلب إلى أن الخادم سوف الرد,

277
00:23:38,716 --> 00:23:41,878
سوف ترسل تفاصيل الطبق: 23 لك.

278
00:23:41,878 --> 00:23:47,421
لذلك ترى أنه تم استخراج المعلمة من رسالة الطلب

279
00:23:47,421 --> 00:23:50,645
ومن ثم تضمينها في رسالة الرد.

280
00:23:50,645 --> 00:23:54,850
دعونا نفعل وظيفة على هذا.

281
00:23:54,850 --> 00:23:59,580
وكما تعلمون، لا يسمح POST على نقطة النهاية هذه،

282
00:23:59,580 --> 00:24:03,450
ولهذا السبب تحصل على حالة 403 ممنوع على هذا.

283
00:24:03,450 --> 00:24:05,728
دعونا نفعل عملية PUT على ذلك.

284
00:24:05,728 --> 00:24:10,040
لذلك بالنسبة لعملية PUT، لاحظت أن الجسم لا يزال يحتوي على ذلك.

285
00:24:10,040 --> 00:24:13,950
لذلك في POST، عند كتابة قيمة هنا،

286
00:24:13,950 --> 00:24:18,720
سيتم الاحتفاظ بها ويمكن تضمينها في الطلبات الأخرى التي ترسلها.

287
00:24:18,720 --> 00:24:25,087
لذلك عند إرسال طلب PUT على نقطة النهاية، أطباق/23.

288
00:24:25,087 --> 00:24:28,650
لذلك لاحظت أنه يقول تحديث الطبق، 23.

289
00:24:28,650 --> 00:24:31,780
سيتم تحديث الطبق، واسم الطبق،

290
00:24:31,780 --> 00:24:36,200
مع التفاصيل، ووصف الطبق هنا.

291
00:24:36,200 --> 00:24:41,130
وبعد ذلك، دعونا نقوم بعملية حذف على نقطة النهاية هذه

292
00:24:41,130 --> 00:24:45,140
ثم تقول، د حذف الطبق: 23.

293
00:24:45,140 --> 00:24:52,210
لذلك يتم دعم نقاط النهاية هذه كما ترى في هذا المثال هنا.

294
00:24:52,210 --> 00:24:58,430
لذلك قمنا بذلك الحصول على PUT، POSRT، وحذف العمليات على كل من نقطة النهاية

295
00:24:58,430 --> 00:25:03,830
/الأطباق وأيضًا نقطة نهاية معرف الطبق.

296
00:25:03,830 --> 00:25:08,010
لذلك، ترى كيف قمنا بتنفيذ دعم نقطة نهاية واجهة برمجة تطبيقات REST

297
00:25:08,010 --> 00:25:12,730
لمجموعة واحدة من نقاط النهاية REST API.

298
00:25:12,730 --> 00:25:17,405
الآن، مع هذا، نكمل الجزء الأول من هذا التمرين.

299
00:25:17,405 --> 00:25:22,378
لذا، رأينا هنا كيف يمكننا استخدام Express لبناء

300
00:25:22,378 --> 00:25:26,755
وتنفيذ نقطة نهاية REST API للأطباق.

301
00:25:26,755 --> 00:25:27,885
الآن، هذا هو الوقت المناسب بالنسبة

302
00:25:27,885 --> 00:25:32,895
لك للقيام git الالتزام مع الرسالة Express Simple REST.

303
00:25:33,895 --> 00:25:42,361
وفقا لمحطة سأبدأ, خادم.

304
00:25:42,361 --> 00:25:45,845
تأكد من أن ثلاثة من العناصر قد تم تغييرها.

305
00:25:45,845 --> 00:25:52,527
لذا، git add، git ارتكاب -m،

306
00:25:52,527 --> 00:26:01,750
Express REST البسيط، وتحقق من المجموعة.

307
00:26:01,750 --> 00:26:08,670
كما ترون، باستخدام Express يمكنك بسهولة تنفيذ دعم REST API.

308
00:26:08,670 --> 00:26:15,300
وكما ترى من هذه القائمة، يمكنك إنشاء التطبيق الحصول على، PUT،

309
00:26:15,300 --> 00:26:21,590
POST، وحذف الطرق لجميع نقاط نهاية REST API مثل هذا.

310
00:26:21,590 --> 00:26:24,601
الآن تخيل أن لديك ألف نقطة نهاية أبي ريست،

311
00:26:24,601 --> 00:26:27,347
وتحتاج إلى بناء شيء من هذا القبيل.

312
00:26:27,347 --> 00:26:33,344
سوف ينفجر ملف index.js الخاص بك مع العديد من نقاط نهاية أبي ريست مختلفة.

313
00:26:33,344 --> 00:26:37,744
ويتم التعامل مع كل واحد باستخدام app.get الخاصة بها،

314
00:26:37,744 --> 00:26:41,536
app.put، app.delete، و app.post.

315
00:26:41,536 --> 00:26:46,336
الآن يدعم Wxpress طريقة لتقسيم هذا العمل إلى

316
00:26:46,336 --> 00:26:48,442
تطبيقات متعددة والعديد من Express،

317
00:26:48,442 --> 00:26:54,580
والتي يمكن بعد ذلك دمجها معًا لتشكيل تطبيق Express الشامل.

318
00:26:54,580 --> 00:26:58,260
هذا هو المكان الذي سوف نستفيد من راوتر إكسبريس

319
00:26:58,260 --> 00:27:01,960
لتكون قادرة على بناء تطبيق إكسبريس مصغرة.

320
00:27:01,960 --> 00:27:06,070
وبعد ذلك، داخل ملف Express Router،

321
00:27:06,070 --> 00:27:10,040
سوف ندعم نقطة نهاية REST API لمجموعة واحدة من أجزاء REST API.

322
00:27:10,040 --> 00:27:13,190
على سبيل المثال، للأطباق، والأطباق DisHid،

323
00:27:13,190 --> 00:27:15,598
يمكن دعمها كلها في ملف واحد.

324
00:27:15,598 --> 00:27:20,694
وبالمثل، في المهمة، ستدعم

325
00:27:20,694 --> 00:27:25,339
نقطة نهاية REST API تسمى الترقيات والترويج/: promoID.

326
00:27:25,339 --> 00:27:29,570
وبعد ذلك، ستدعم واجهة برمجة تطبيقات REST أخرى

327
00:27:29,570 --> 00:27:34,241
وللقائد/القادة، و /القائد: Leaderd.

328
00:27:34,241 --> 00:27:39,088
لذلك يمكن تنفيذ كل من هذه المجموعات بشكل منفصل كما العديد من

329
00:27:39,088 --> 00:27:43,120
تطبيقات Express باستخدام Express Router.

330
00:27:43,120 --> 00:27:46,230
لذلك هذا هو ما سوف أوضح لك

331
00:27:46,230 --> 00:27:52,150
لنقطة نهاية الأطباق في الجزء التالي من هذا التمرين.

332
00:27:52,150 --> 00:27:57,668
لذلك للقيام بذلك، ونحن ندرك أنه إذا وضعنا جميع الملفات في مجلد واحد،

333
00:27:57,668 --> 00:28:01,498
ثم مرة أخرى هيكل المجلد الخاص بك سوف تبدو فوضوي.

334
00:28:01,498 --> 00:28:07,731
لذا أفضلي هو إنشاء مجلد هنا باسم المسارات.

335
00:28:07,731 --> 00:28:12,591
وسيحتوي مجلد المسارات هذا على جميع أجهزة التوجيه التي سأقوم

336
00:28:12,591 --> 00:28:15,450
بتصميمها باستخدام جهاز التوجيه Express.

337
00:28:15,450 --> 00:28:19,465
لذلك في مجلد المسارات، سأقوم بإنشاء ملف جديد يسمى

338
00:28:19,465 --> 00:28:27,270
dishRouter.js.

339
00:28:27,270 --> 00:28:31,332
وسيحتوي ملف dishRouter.js هذا

340
00:28:31,332 --> 00:28:36,972
على تنفيذ معالجة نقطة نهاية REST API

341
00:28:36,972 --> 00:28:41,281
لـ/الأطباق و /الأطباق: نقاط النهاية Dishid.

342
00:28:41,281 --> 00:28:44,626
الآن كيف يمكننا الاستفادة من راوتر إكسبريس؟

343
00:28:44,626 --> 00:28:46,910
دعونا نرى كيف يمكننا استخدامها.

344
00:28:46,910 --> 00:28:51,050
الآن Express Router يأتي جنبا إلى جنب مع Express، لذلك نحن لسنا بحاجة إلى تثبيت بعد

345
00:28:51,050 --> 00:28:53,130
وحدة عقدة أخرى.

346
00:28:53,130 --> 00:28:56,970
بدلاً من ذلك، يمكننا العمل مع Express الذي قمنا بتثبيته بالفعل.

347
00:28:56,970 --> 00:29:02,308
لذلك للقيام بذلك، في هذه المطالبة، اكتب، const Express

348
00:29:02,308 --> 00:29:07,200
= تتطلب ('Express')؛.

349
00:29:07,200 --> 00:29:09,950
لذلك لاحظ أنه، لأن هذا هو تطبيق صغير،

350
00:29:09,950 --> 00:29:15,000
ونحن لا تزال تتطلب صريحة حتى في هذا الملف dishRouter.js.

351
00:29:15,000 --> 00:29:18,495
ومن معرفتك بوحدات العقدة، بمجرد تحديد ملف جديد،

352
00:29:18,495 --> 00:29:20,251
يصبح وحدة العقدة الخاصة به.

353
00:29:20,251 --> 00:29:24,708
ويمكن بعد ذلك استيراد وحدة العقدة هذه في index.js.

354
00:29:24,708 --> 00:29:29,520
لذلك ترى الاتصال بالفعل بين كيف يمكننا إعادة هيكلة

355
00:29:29,520 --> 00:29:33,415
التطبيق لدينا في ملفات متعددة باستخدام وحدات عقدة.

356
00:29:33,415 --> 00:29:39,525
لذلك سنقوم بتعيين تتطلب Express، ثم سنقول const

357
00:29:39,525 --> 00:29:44,830
bodyParser تتطلب («محلل الجسم»).

358
00:29:44,830 --> 00:29:50,310
لذلك قمنا بالفعل بتثبيت BodyParser في الخطوات السابقة من التمرين،

359
00:29:50,310 --> 00:29:51,634
حتى نتمكن من استخدام ذلك.

360
00:29:51,634 --> 00:29:55,040
الآن لاستخدام جهاز التوجيه Express،

361
00:29:55,040 --> 00:30:00,636
اسمحوا لي أن أعلن const dishRouter = Express.R

362
00:30:00,636 --> 00:30:05,769
وعلى Express، فإنه يدعم واجهة جهاز التوجيه هذه، لذلك

363
00:30:05,769 --> 00:30:11,430
سنقول ببساطة Express.Router وهذا سيعلن dishRouter كجهاز توجيه Express.

364
00:30:11,430 --> 00:30:13,951
لذلك في العديد من تطبيق Express،

365
00:30:13,951 --> 00:30:18,820
نظرة ثاقبة هنا يمكنني التعامل مع هذا رمز DishRouter ذات الصلة هنا.

366
00:30:19,830 --> 00:30:26,560
حتى مرة واحدة أعلن من هذا في جهاز التوجيه إكسبريس، ثم أستطيع أن أقول ديشروتر.

367
00:30:28,050 --> 00:30:33,337
ثم على DishRouter، فإنه يدعم طريقة تسمى طريقة الطريق،

368
00:30:33,337 --> 00:30:36,694
والتي يمكن أن تأخذ في نقطة نهاية كمعلمة.

369
00:30:36,694 --> 00:30:41,330
لذلك أود ببساطة أن أعلن نقطة النهاية هذه أ /.

370
00:30:41,330 --> 00:30:44,620
الآن، أنت تتسائل، ألا يجب أن تكون هذه أطباق؟

371
00:30:44,620 --> 00:30:49,630
سترى قريبا جدا أنني بحاجة إلى تحميل هذا

372
00:30:49,630 --> 00:30:53,140
الموجه إكسبريس في ملف index.js الخاص بي.

373
00:30:53,140 --> 00:31:01,270
لذلك في ملف index.js الخاص بي، سأقوم بتثبيت هذا الموجه السريع في نقطة النهاية /الأطباق.

374
00:31:01,270 --> 00:31:03,300
تركيب جهاز توجيه صريح، مرة أخرى،

375
00:31:03,300 --> 00:31:05,900
مفهوم واحد آخر أريدك أن تفهمه.

376
00:31:05,900 --> 00:31:08,408
مرة أخرى، سوف أوضح لك ذلك في فترة قصيرة.

377
00:31:08,408 --> 00:31:13,368
الآن، جهاز الصحون. الطريق يعني أنه باستخدام هذا النهج،

378
00:31:13,368 --> 00:31:17,526
ونحن نعلن نقطة النهاية في موقع واحد.

379
00:31:17,526 --> 00:31:21,316
حيث يمكنك سلسلة كل الحصول على، PUT، POST،

380
00:31:21,316 --> 00:31:25,219
وحذف الطرق بالفعل القيام بهذا الموجه الطبق.

381
00:31:25,219 --> 00:31:30,139
الآن، عندما تنظر إلى index.js، انظر إلى الطريقة التي ضمنا هذا.

382
00:31:30,139 --> 00:31:36,029
لذلك لدينا app.all ثم /أطباق، app.get/أطباق و /أطباق.

383
00:31:36,029 --> 00:31:40,795
الآن، إذا كنت قد ارتكبت خطأ، وتعليمهم app.post

384
00:31:40,795 --> 00:31:45,580
/أطباق بدلا من ذلك إذا كنت مجرد كتابة /طبق، ثم ماذا يحدث؟

385
00:31:45,580 --> 00:31:49,050
لن يتم دعم عملية POST على الأطباق ولكن

386
00:31:49,050 --> 00:31:51,730
سيتم دعمها على/ نقطة نهاية الطبق.

387
00:31:53,170 --> 00:31:59,220
لتجنب هذه المشكلة، يدعم جهاز التوجيه السريع نقطة نهاية المسار هذه.

388
00:31:59,220 --> 00:32:00,090
في نقطة نهاية المسار،

389
00:32:00,090 --> 00:32:05,860
يمكنك ببساطة تحديد نقطة النهاية التي سيعمل عليها هذا الموجه.

390
00:32:05,860 --> 00:32:10,890
وبعد ذلك، يتم وضع طريقة حذف جزء، وهذا ببساطة بالسلاسل في ذلك.

391
00:32:10,890 --> 00:32:16,300
لذلك ستكون مجموعة واحدة من تطبيقات الأسلوب معًا.

392
00:32:16,300 --> 00:32:20,345
لذلك هذا هو السبب في أنهم يستخدمون جهاز توجيه Express.

393
00:32:20,345 --> 00:32:24,185
لذلك يأتي مع اثنين من

394
00:32:24,185 --> 00:32:28,525
الدعم المفيد جدا للتأكد من أن التنفيذ الخاص بك هو الصحيح.

395
00:32:28,525 --> 00:32:32,190
والآن بما أننا سنفعل ذلك كجهاز توجيه للأطباق،

396
00:32:32,190 --> 00:32:37,920
ما سأفعله هو أنني سأقوم بإزالة هذا الشيء من هنا.

397
00:32:37,920 --> 00:32:42,990
الآن، تلك الأطباق نقطة IDN، أنا ذاهب

398
00:32:42,990 --> 00:32:47,565
إلى ترك ذلك لك كتمرين في مهمتك الأولى ولكن

399
00:32:47,565 --> 00:32:54,180
نهاية الأطباق، وأنا ذاهب لقطع هذا، على طول الطريق إلى الجميع.

400
00:32:54,180 --> 00:32:59,350
أنا ذاهب لقطع هذا من index.js5

401
00:32:59,350 --> 00:33:04,580
ونقل ذلك إلى ديشروتر هنا.

402
00:33:04,580 --> 00:33:11,887
الآن عندما أنقل ذلك إلى DishRouter، لا أحتاج إلى هذا app.all بعد الآن.

403
00:33:11,887 --> 00:33:18,267
أنا ببساطة سلسلة ذلك في الطريق، لذلك سأقول ببساطة. all

404
00:33:18,267 --> 00:33:24,210
وبعد ذلك لم أعد بحاجة إلى تعريف نقطة النهاية هذا هناك.

405
00:33:24,210 --> 00:33:24,900
هذا كل شيء لذا

406
00:33:24,900 --> 00:33:28,390
سيقول. كل شيء وبعد ذلك سنقول (ريك)، (ريس)، التالي.

407
00:33:28,390 --> 00:33:31,470
وهذا، كل شيء يعمل على هذه النقطة

408
00:33:31,470 --> 00:33:33,690
المحددة بالفعل هنا.

409
00:33:33,690 --> 00:33:37,920
الآن، ليس هذا فقط، يمكننا سلسلة الطرق المتبقية.

410
00:33:37,920 --> 00:33:41,360
لهذا السبب ترى أنني أزلت الفاصلة المنقوطة من هنا.

411
00:33:41,360 --> 00:33:46,270
أنا ذاهب لحذف هذا التطبيق ومن ثم إرفاقه على ذلك.

412
00:33:46,270 --> 00:33:51,600
حتى يحصل أيضا يحصل على تغيير في الطريق، وبعد ذلك يمكنني إزالة

413
00:33:53,140 --> 00:33:57,740
هذا الجزء، وسوف تبقى معالجة بالضبط نفس كما كان من قبل.

414
00:33:57,740 --> 00:34:05,520
لذلك بالمثل، وسوف إزالة, التطبيق هناك.

415
00:34:05,520 --> 00:34:10,850
ثم مرة أخرى، احذف ذلك من المشاركة.

416
00:34:10,850 --> 00:34:11,865
ونفس الشيء

417
00:34:17,447 --> 00:34:22,248
لوضع,

418
00:34:22,248 --> 00:34:27,360
وللحذف, نفس الشيء.

419
00:34:27,360 --> 00:34:30,800
لذلك لاحظ أنه لا توجد فاصلة منقوطة هنا،

420
00:34:30,800 --> 00:34:34,670
هنا أو هنا، ولكن آخر واحد، حذف، سيكون لها الفاصلة المنقوطة في مكانها.

421
00:34:34,670 --> 00:34:40,810
لذا هذه المجموعة هي وحدة واحدة يتم تنفيذها باستخدام

422
00:34:40,810 --> 00:34:45,930
جهاز توجيه الطبق على جهاز التوجيه هذا، وكل هذه هي مرتبطة ببعضها البعض.

423
00:34:47,640 --> 00:34:52,610
وأيضا، بطبيعة الحال، مع حذف، وأنا بحاجة إلى إزالة هذه النقطة النهاية.

424
00:34:52,610 --> 00:34:56,626
هذا كل شيء، انظر، بنية نظيفة من التعليمات البرمجية هنا.

425
00:34:56,626 --> 00:35:02,100
بحيث أساسا، ينتهي تنفيذ ديشروتر، الحق،

426
00:35:02,100 --> 00:35:07,700
تذكر، يتم تعريف هذا ديشروتر داخل ملف dishRouter.js.

427
00:35:07,700 --> 00:35:12,870
الآن، أحتاج إلى تصدير هذا من وحدة العقدة هذه.

428
00:35:12,870 --> 00:35:17,500
لذا لتصدير هذا، سأذهب إلى الأسفل هنا

429
00:35:17,500 --> 00:35:22,877
وسأقول module.exports

430
00:35:22,877 --> 00:35:26,170
وأقول، DishRouter.

431
00:35:26,170 --> 00:35:27,030
هذا هو.

432
00:35:27,030 --> 00:35:34,920
حتى الآن، بلدي ديشروتر هو تصدير كل ما أحتاج.

433
00:35:34,920 --> 00:35:41,170
الآن، أنت تنظر إلى هذا وتقول، ماذا عن طبق القولون.

434
00:35:41,170 --> 00:35:44,302
هذا سيكون جزء من مهمتك الأولى

435
00:35:44,302 --> 00:35:47,010
ليس ذلك فقط، فسوف تقوم بتنفيذ

436
00:35:47,010 --> 00:35:53,000
نقطتي نهايتين إضافيتين لـ REST API أيضًا، والعروض الترويجية والقادة.

437
00:35:53,000 --> 00:35:57,960
ولكن هذا يظهر لك بالفعل بنية ما

438
00:35:57,960 --> 00:36:03,080
يبدو عليه تنفيذ أجهزة التوجيه Express لدعم API res.

439
00:36:03,080 --> 00:36:05,070
لذلك هذا هو لالصحون. الطريق.

440
00:36:05,070 --> 00:36:09,848
وشيء أخير قبل أن أنسى،

441
00:36:09,848 --> 00:36:18,140
يجب أن نقول dishrouter.Use (bodyparser.json ()).

442
00:36:20,326 --> 00:36:23,852
الآن بمجرد الانتهاء من تنفيذ ديشروتر،

443
00:36:23,852 --> 00:36:26,130
يمكننا الآن الذهاب إلى ملف index.js.

444
00:36:26,130 --> 00:36:34,020
منذ هذا DishRouter هو وحدة عقدة أخرى، وحدة عقدة غرامة مع ذلك.

445
00:36:34,020 --> 00:36:38,120
لذلك نحن بحاجة إلى استيراد هذا في طلبنا.

446
00:36:38,120 --> 00:36:44,250
حتى هنا، أنا ذاهب لاستيراد كونست

447
00:36:46,000 --> 00:36:52,100
ديشروتر يساوي تتطلب.

448
00:36:52,100 --> 00:36:56,626
الآن بما أن هذه وحدة عقدة تستند إلى ملف،

449
00:36:56,626 --> 00:37:03,000
سأقول. /المساربات/جهاز توجيه الأطباق.

450
00:37:03,000 --> 00:37:09,850
وبمجرد أن أعلن لهم هناك، ثم أنزل إلى رمز هنا.

451
00:37:09,850 --> 00:37:14,230
وهناك حق، أقول app.use.

452
00:37:14,230 --> 00:37:19,130
وأنا جبل جهاز التوجيه في نقطة النهاية.

453
00:37:19,130 --> 00:37:20,930
فكيف يمكنني تحميل جهاز التوجيه؟

454
00:37:20,930 --> 00:37:25,790
المعلمة الأولى هنا، وسوف تحدد أطباق مائلة.

455
00:37:25,790 --> 00:37:29,480
والمعلمة الثانية، حدد ديشروتر.

456
00:37:30,810 --> 00:37:31,830
وهذا كل شيء.

457
00:37:31,830 --> 00:37:35,080
لذلك ما يعنيه هذا هو أنه في طلبي السريع،

458
00:37:36,205 --> 00:37:41,435
سيتم التعامل مع أي طلب قادم إلى نقطة نهاية الأطباق المائلة هذه بواسطة DishRouter،

459
00:37:41,435 --> 00:37:45,615
وسيتم ذلك بواسطة الرمز الموجود هنا،

460
00:37:45,615 --> 00:37:50,755
لأننا قلنا DishRouter الطريق، لذا لاحظ أن هذا يقول شرطة مائلة،

461
00:37:50,755 --> 00:37:54,575
مما يعني أن هذا هي التي شنت في نقطة النهاية أطباق مائلة.

462
00:37:54,575 --> 00:37:59,378
لذلك هذا هو السبب في أي شيء يأتي من خلال أطباق مائلة سيتم إرسالها إلى هذا

463
00:37:59,378 --> 00:38:00,890
وسيتم التعامل معها من قبل هذا.

464
00:38:02,730 --> 00:38:07,000
تلميح كبير بالنسبة لك للتفكير في كيفية تنفيذ

465
00:38:07,000 --> 00:38:11,020
نقطة نهاية معرف طبق القولون.

466
00:38:11,020 --> 00:38:16,440
سوف لا تزال تستخدم نفس الملف dishRouter.js أيضا لتنفيذ دعم

467
00:38:16,440 --> 00:38:21,670
ذلك، /dished /: نقطة نهاية dished.

468
00:38:21,670 --> 00:38:24,580
هذا تلميح كبير آخر بالنسبة لك، حسنا.

469
00:38:24,580 --> 00:38:29,260
مع هذه التغييرات، دعونا حفظ التغييرات التي قمنا بها

470
00:38:29,260 --> 00:38:33,870
على التطبيق لدينا ومن ثم إعادة تشغيل الخادم لدينا ومن

471
00:38:33,870 --> 00:38:37,480
ثم نلقي نظرة على كيفية الخادم لدينا هو الذهاب للقيام بعملها.

472
00:38:38,850 --> 00:38:44,190
الذهاب إلى المحطة، اسمحوا لي إعادة تشغيل هذا الخادم عن طريق كتابة بداية npm.

473
00:38:44,190 --> 00:38:47,340
وبمجرد تشغيل الخادم، سأذهب إلى ساعي البريد

474
00:38:47,340 --> 00:38:50,220
وأرسل طلبات من ساعي البريد إلى هذا الخادم.

475
00:38:51,220 --> 00:38:57,110
الذهاب إلى ساعي البريد، والآن أنا أعلم أن خادمي يدعم فقط

476
00:38:57,110 --> 00:39:01,690
نقطة نهاية الأطباق، لقد نفذت جزء معرف الطبق منه.

477
00:39:01,690 --> 00:39:05,570
لذلك اسمحوا لي أن أرسل طلب الحصول على الأطباق المضيفة المحلية

478
00:39:05,570 --> 00:39:08,590
وسترى أنه يعمل تماما كما كان من قبل.

479
00:39:08,590 --> 00:39:12,910
الآن إذا كنت قد فعلت طلب سابق في المشاركة، فيمكنك ببساطة النقر على ذلك

480
00:39:12,910 --> 00:39:15,150
ثم إعادة إرسال هذا الطلب.

481
00:39:16,940 --> 00:39:26,680
وضع العملية لا يعمل، ما بعد العملية، يعمل كما ترون هناك.

482
00:39:26,680 --> 00:39:32,370
ثم دعونا نتسبب في عملية الحذف على الأطباق.

483
00:39:32,370 --> 00:39:36,210
وتقول حذف جميع الأطباق كما هو متوقع.

484
00:39:36,210 --> 00:39:45,230
لذلك هذا هو تنفيذ دعم أبي بقية باستخدام جهاز التوجيه السريع.

485
00:39:45,230 --> 00:39:48,950
مع هذا، نكمل النصف الثاني من هذا التمرين.

486
00:39:48,950 --> 00:39:54,490
هذا هو الوقت المناسب بالنسبة لك للقيام تعليق الحصول على مع جهاز التوجيه السريع الرسالة.

487
00:39:55,830 --> 00:40:00,896
الآن بعد أن أكملنا هذا التمرين حيث رأينا كيف

488
00:40:00,896 --> 00:40:06,450
يمكن استخدام Express لدعم تنفيذ دعم نقطة نهاية API Res على خادمنا،

489
00:40:06,450 --> 00:40:08,900
وكذلك استخدام جهاز التوجيه Express،

490
00:40:08,900 --> 00:40:13,906
فقد حان الوقت للانتقال إلى المهمة الأولى التي تتبع هذا الدرس.

491
00:40:13,906 --> 00:40:20,030
[ موسيقى]