1
00:00:03,910 --> 00:00:09,095
حان الوقت للبدء في الرابع والتكليف النهائي لهذه الدورة.

2
00:00:09,095 --> 00:00:12,170
لقد صممت هذه المهمة لتكون توحيد

3
00:00:12,170 --> 00:00:15,610
لكل ما تعلمته في هذه الدورة.

4
00:00:15,610 --> 00:00:21,990
لذلك سوف يتضمن هذا التعيين التوجيه باستخدام جهاز التوجيه السريع.

5
00:00:21,990 --> 00:00:26,340
وسوف تنطوي على تصميم المخططات في النموذج،

6
00:00:26,340 --> 00:00:29,420
لدينا MongoDB و Mongoose،

7
00:00:29,420 --> 00:00:33,531
وبعد ذلك أيضا سوف ننظر لفترة وجيزة في مصادقة المستخدم.

8
00:00:33,531 --> 00:00:36,420
ماذا نفعل بالضبط في هذه المهمة؟

9
00:00:36,420 --> 00:00:41,600
ويستند هذا الواجب حول قدرة المستخدم على

10
00:00:41,600 --> 00:00:49,510
حفظ واسترداد قائمة من الأطباق كما الأطباق المفضلة لديهم على جانب الخادم.

11
00:00:49,510 --> 00:00:53,105
إذا كنت قد أخذت الدورات السابقة لهذا التخصص،

12
00:00:53,105 --> 00:00:58,275
وتحديدا دورات تطوير تطبيقات الجوال الهجين،

13
00:00:58,275 --> 00:01:00,675
سواء كان أيوني أو النص الأصلي،

14
00:01:00,675 --> 00:01:06,720
كنت قد رأيت أن لدينا تصميم التطبيقات لتكون قادرة على السماح للمستخدم

15
00:01:06,720 --> 00:01:10,355
لحفظ الأطباق في قائمة المفضلة لديهم الأطباق

16
00:01:10,355 --> 00:01:14,480
وأيضا استرداد الأطباق من تلك القائمة من الأطباق المفضلة لديهم.

17
00:01:14,480 --> 00:01:17,840
عندما نفذنا ذلك في الدورات السابقة،

18
00:01:17,840 --> 00:01:24,085
قمنا بتنفيذ ذلك باستخدام التخزين المحلي على جهاز معين.

19
00:01:24,085 --> 00:01:26,330
في هذا الواجب، عليك توسيع

20
00:01:26,330 --> 00:01:30,308
جانب الخادم لتكون قادرة على دعم ذلك بالضبط.

21
00:01:30,308 --> 00:01:34,940
وبهذه الطريقة، يمكن للمستخدم حفظ قائمة الأطباق المفضلة لديهم

22
00:01:34,940 --> 00:01:37,805
على جانب الخادم والوصول إلى هذه القائمة من

23
00:01:37,805 --> 00:01:41,950
أي جهاز الذي سيتم تسجيل الدخول إلى خادمهم.

24
00:01:41,950 --> 00:01:49,140
ما يعنيه هذا هو أننا بحاجة إلى تصميم مسار جديد لخادمنا،

25
00:01:49,140 --> 00:01:52,615
والذي سوف نسميه كمسار/المفضلة.

26
00:01:52,615 --> 00:01:59,314
على هذا الطريق، سيكون لدينا لتصميم جهاز التوجيه السريع لدعم الحصول على،

27
00:01:59,314 --> 00:02:03,515
وظيفة وحذف العمليات على هذا الطريق

28
00:02:03,515 --> 00:02:08,495
وأيضا تصميم مخطط لتخزين الأطباق المفضلة

29
00:02:08,495 --> 00:02:13,343
ونموذج النمس المقابلة

30
00:02:13,343 --> 00:02:19,820
وربط الاثنين معا بحيث يمكن حفظ المعلومات و استردادها من MongoDB.

31
00:02:19,820 --> 00:02:27,590
وسوف نستخدم أيضا السكان النمس من أجل رسم في المعلومات من

32
00:02:27,590 --> 00:02:32,000
نموذج المستخدم ومن نموذج الأطباق عندما نضع

33
00:02:32,000 --> 00:02:37,105
معا تلك القائمة من الأطباق المفضلة لمستخدمنا.

34
00:02:37,105 --> 00:02:41,355
لن

35
00:02:41,355 --> 00:02:46,355
تحتوي معلومات الأطباق المفضلة التي تخزنها في الواقع على معلومات المستخدم أو معلومات الطبق.

36
00:02:46,355 --> 00:02:53,000
بدلا من ذلك، فإنه سوف تحتوي على مؤشرات إلى وثائق وثيقة طبق

37
00:02:53,000 --> 00:02:56,660
ومستند المستخدم وبعد ذلك سنقوم بنشر هذه المعلومات

38
00:02:56,660 --> 00:03:03,155
عندما نقوم بإرسال هذه المعلومات ردا على طلب الحصول على.

39
00:03:03,155 --> 00:03:05,495
دعونا ننظر في كيفية تنفيذ

40
00:03:05,495 --> 00:03:13,135
هذه المهمة النهائية وأيضا المهام المختلفة في هذه المهمة النهائية.

41
00:03:13,135 --> 00:03:17,370
لمساعدتك على فهم ما هو مطلوب في

42
00:03:17,370 --> 00:03:21,330
المهمة النهائية أو ما سوف تقوم بتنفيذه في المهمة النهائية،

43
00:03:21,330 --> 00:03:26,835
اسمحوا لي أن أوضح ما يتوقع من الخادم الخاص بك القيام به في نهاية هذه المهمة،

44
00:03:26,835 --> 00:03:31,540
وبعد ذلك سوف قائمة المهام الثلاث التي تحتاج إلى القيام بها في هذا المهمة.

45
00:03:31,540 --> 00:03:35,460
للبدء، نحن بحاجة إلى مجموعة من الأطباق بالفعل

46
00:03:35,460 --> 00:03:40,250
على جانب الخادم بحيث يمكن للمستخدم وضع علامة على بعضها كأطباق المفضلة لديهم.

47
00:03:40,250 --> 00:03:47,805
لقد ذهبت إلى الأمام وأضاف في أربعة أطباق إلى قائمتي من الأطباق على جانب الخادم.

48
00:03:47,805 --> 00:03:50,065
أنت تعرف بالفعل كيفية القيام بذلك.

49
00:03:50,065 --> 00:03:52,725
يجب عليك تسجيل الدخول كمشرف ثم نشر

50
00:03:52,725 --> 00:03:56,670
معلومات الطبق هذه إلى جانب الخادم واحدًا تلو الآخر.

51
00:03:56,670 --> 00:04:01,590
لتمكينك من الحصول على المعلومات لكل من هذه الأطباق،

52
00:04:01,590 --> 00:04:05,405
لقد قدمت لك بالفعل ملف db.json الذي يحتوي

53
00:04:05,405 --> 00:04:11,400
على مستندات JSON المقابلة لكل من هذه الأطباق في موارد التعيين.

54
00:04:11,400 --> 00:04:14,670
يمكنك فتح ذلك، وقطع ولصق المعلومات من هناك ومن ثم

55
00:04:14,670 --> 00:04:19,576
إنشاء قائمة من الأطباق على جانب الخادم الخاص بك.

56
00:04:19,576 --> 00:04:22,980
هنا، سترى أنني قمت بالفعل بإجراء عملية الحصول على

57
00:04:22,980 --> 00:04:26,940
المضيف المحلي: 3000/أطباق ثم

58
00:04:26,940 --> 00:04:31,140
ترى أنني قد حصلت بالفعل على قائمة الأطباق هنا.

59
00:04:31,140 --> 00:04:38,570
ما هو مهم بالنسبة لنا أن نلاحظ أن كل طبق سيكون له معرف الطبق الخاص به هنا.

60
00:04:38,570 --> 00:04:42,384
عندما تحتاج إلى وضع علامة على أي طبق كما المفضلة

61
00:04:42,384 --> 00:04:46,470
لديك، تحتاج إلى الوصول إلى معرف الطبق لكل من هذه الأطباق.

62
00:04:46,470 --> 00:04:51,030
يمكنك نسخ هذه الأطباق الأربعة ومن ثم حفظها بحيث عند

63
00:04:51,030 --> 00:04:56,094
تنفيذ العمليات لإضافة هذه الأطباق إلى قائمة الأطباق،

64
00:04:56,094 --> 00:05:00,085
ثم سوف تكون قادرة على استخدام هذا معرف الطبق.

65
00:05:00,085 --> 00:05:02,730
لذلك أنا ذاهب لنسخ هذه الأرقام أربعة أطباق ومن ثم

66
00:05:02,730 --> 00:05:05,820
حفظها في وثيقة نصية حتى أتمكن من الاستفادة منها.

67
00:05:05,820 --> 00:05:09,325
قبل أن أتمكن من إضافة أطباق إلى قائمة أطباقي،

68
00:05:09,325 --> 00:05:12,347
من الواضح أنني بحاجة إلى تسجيل الدخول كمستخدم.

69
00:05:12,347 --> 00:05:16,370
اسمحوا لي أن المضي قدما وتسجيل الدخول كواحد من المستخدمين.

70
00:05:16,370 --> 00:05:25,245
للقيام بذلك، اسمحوا لي أن تفعل وظيفة على المضيف المحلي: 3000/المستخدمين/تسجيل الدخول.

71
00:05:25,245 --> 00:05:28,530
وفي نص الرسالة،

72
00:05:28,530 --> 00:05:35,940
اسمحوا لي أن اكتب في أحد المستخدمين المسجلين.

73
00:05:35,940 --> 00:05:42,375
لا أريد تسجيل الدخول كمسؤول ولكن كأحد المستخدمين العاديين الآخرين.

74
00:05:42,375 --> 00:05:47,442
لذلك اسمحوا لي أن أفعل هذا المنصب على https://localhost:3443.

75
00:05:47,442 --> 00:05:48,890
الآن كل هذه العمليات،

76
00:05:48,890 --> 00:05:55,200
من الأفضل القيام بذلك على نقطة نهاية HTTPS بدلاً من نقطة نهاية HTTP.

77
00:05:55,200 --> 00:06:01,920
سنقوم بنشر نقطة النهاية هذه وتسجيل الدخول إلى خدمتنا،

78
00:06:01,920 --> 00:06:05,920
وردًا على ذلك، يجب أن تكون قادرًا على الحصول على رمز ويب JSON.

79
00:06:05,920 --> 00:06:11,190
لذلك دعونا نجعل نسخة من رمز ويب JSON هذا لأننا سنحتاج إلى هذا

80
00:06:11,190 --> 00:06:16,905
من أجل تنفيذ أي من العمليات لإضافة أطباق إلى قائمة المفضلة لدينا.

81
00:06:16,905 --> 00:06:22,628
اسمحوا لي بنسخ هذا الرمز المميز وحفظه في المستند النصي الخاص بي.

82
00:06:22,628 --> 00:06:27,935
الآن، كيف يمكنني إضافة طبق إلى قائمتي المفضلة؟

83
00:06:27,935 --> 00:06:33,450
للقيام بذلك، الخطوة الأولى هي أن علينا

84
00:06:33,450 --> 00:06:40,355
الوصول إلى نقطة النهاية /المفضلة.

85
00:06:40,355 --> 00:06:45,435
إذا كنت ترغب في إضافة طبق معين إلى قائمة المفضلة،

86
00:06:45,435 --> 00:06:52,605
فإننا نقول/المفضلة ثم نضيف معرف الطبق في عنوان URL هنا.

87
00:06:52,605 --> 00:06:57,970
اسمحوا لي أن لصق في معرف الطبق الذي أريد أن أضيف إلى قائمتي المفضلة.

88
00:06:57,970 --> 00:07:08,025
هنا، لقد لصق في معرف الطبق الخاص بي إلى قائمة المفضلة.

89
00:07:08,025 --> 00:07:13,590
لن يحتوي نص رسالة المضيف هذه على أي شيء لأن كل ما أحتاجه موجود بالفعل في عنوان URL.

90
00:07:13,590 --> 00:07:16,043
وبالنسبة للرأس،

91
00:07:16,043 --> 00:07:18,984
أحتاج إلى إعداد رأس التفويض،

92
00:07:18,984 --> 00:07:21,371
وفي رأس التفويض،

93
00:07:21,371 --> 00:07:24,380
أحتاج إلى الرمز المميز.

94
00:07:24,380 --> 00:07:29,487
لذا دعني أنسخ الرمز المميز هنا ثم في رأس التفويض،

95
00:07:29,487 --> 00:07:34,750
دعنا نقول حامل، ولصقه في رأس التفويض.

96
00:07:34,750 --> 00:07:39,853
يمكنك أيضًا القيام بنفس الشيء للحصول على الرمز المميز.

97
00:07:39,853 --> 00:07:46,925
يمكنك أيضًا إجراء تسجيل الدخول من خلال Facebook ثم الحصول على رمز ويب JSON.

98
00:07:46,925 --> 00:07:50,960
لقد أوضحت الحصول على رمز ويب JSON باستخدام

99
00:07:50,960 --> 00:07:55,655
المصادقة المحلية القياسية باستخدام اسم المستخدم وكلمة المرور،

100
00:07:55,655 --> 00:07:58,940
ولكن لا يهم الطريقة التي حصلت بها على رمز ويب JSON.

101
00:07:58,940 --> 00:08:01,160
طالما لديك رمز ويب JSON،

102
00:08:01,160 --> 00:08:04,376
يجب أن تكون قادرًا على تنفيذ جميع هذه العمليات.

103
00:08:04,376 --> 00:08:10,280
اسمحوا لي أن تنفيذ عملية ما بعد على نقطة النهاية هذه وتذكر أن هذا

104
00:08:10,280 --> 00:08:16,570
هو معرف الطبق للطبق المحدد الذي أريد إضافته إلى قائمتي المفضلة.

105
00:08:16,570 --> 00:08:19,895
عندما أقوم بالنشر إلى قائمة المفضلة،

106
00:08:19,895 --> 00:08:29,135
سترى أن الخادم الخاص بي سيرد مرة أخرى مع هذا المستند هنا في نص الرد.

107
00:08:29,135 --> 00:08:33,328
الآن، دعونا نفحص هذا المستند لمعرفة ما يحتوي عليه بالضبط.

108
00:08:33,328 --> 00:08:36,680
يحتوي هذا المستند، كما ترى، على معرف،

109
00:08:36,680 --> 00:08:39,511
ولكن من الواضح أن هذا مستند JSON،

110
00:08:39,511 --> 00:08:43,115
بالإضافة إلى أنه يحتوي على

111
00:08:43,115 --> 00:08:46,335
حقل هنا يسمى المستخدم.

112
00:08:46,335 --> 00:08:48,425
الآن ماذا يخزن حقل المستخدم هذا؟

113
00:08:48,425 --> 00:08:53,848
حقل المستخدم هذا هو معرف الكائن للمستخدم

114
00:08:53,848 --> 00:09:00,620
المقابلة لمن هذه القائمة الخاصة من المفضلة.

115
00:09:00,620 --> 00:09:02,960
وانظر الى الصحون

116
00:09:02,960 --> 00:09:10,120
الأطباق عبارة عن مجموعة وهي عبارة عن مجموعة من معرفات الأطباق.

117
00:09:10,120 --> 00:09:15,950
وفي هذه الحالة، أضفت الطبق الأول إلى قائمتي المفضلة.

118
00:09:15,950 --> 00:09:22,690
لذلك، لهذا السبب لدي طبق واحد فقط في مجموعة من الأطباق في قائمتي المفضلة.

119
00:09:22,690 --> 00:09:30,140
لذلك، يجب أن يوحي هذا على الفور لك كيفية تصميم المخطط للمفضلات الخاصة بك.

120
00:09:30,140 --> 00:09:34,760
لذلك، تحتوي الأطباق على معرفات الكائن لكل من الأطباق،

121
00:09:34,760 --> 00:09:39,124
ويحتوي المستخدم على معرف الكائن المقابل للمستخدم.

122
00:09:39,124 --> 00:09:42,335
لقد رأيت بالفعل كيف يمكنني استخدام

123
00:09:42,335 --> 00:09:49,800
المعلومات للقيام السكان من المعلومات عندما أفعل عملية الحصول على.

124
00:09:49,800 --> 00:09:52,690
وقد فعلنا ذلك بتعليقات بالفعل.

125
00:09:52,690 --> 00:09:57,980
لذلك، يجب أن تعطيك تلميحا كبيرا حول كيفية تصميم المخطط الذي يحتوي

126
00:09:57,980 --> 00:10:04,855
على المستخدم ومجموعة من الأطباق في قائمتي من الأطباق هنا.

127
00:10:04,855 --> 00:10:07,330
الآن، لقد فعلنا هذا المنصب على هذا.

128
00:10:07,330 --> 00:10:09,500
دعونا الحصول على قائمة المفضلة.

129
00:10:09,500 --> 00:10:11,750
لذلك للحصول على قائمة المفضلة،

130
00:10:11,750 --> 00:10:14,405
أحتاج إلى إجراء عملية الحصول على.

131
00:10:14,405 --> 00:10:16,561
الآن، بالنسبة لعملية الحصول على،

132
00:10:16,561 --> 00:10:21,950
من الواضح أنني بحاجة أيضًا

133
00:10:21,950 --> 00:10:27,635
إلى معلومات التفويض هنا لأنك تريد أن يتمكن المستخدم من استرداد قائمة المفضلة الخاصة به فقط،

134
00:10:27,635 --> 00:10:32,905
ولا يمكن لأي مستخدم آخر استرداد قائمة المفضلة لمستخدم مختلف.

135
00:10:32,905 --> 00:10:34,590
لذلك، هذا مهم جدا.

136
00:10:34,590 --> 00:10:37,640
لذلك، هذا يوحي لك أنك تحتاج

137
00:10:37,640 --> 00:10:41,620
إلى التحقق من صحة المستخدم حتى لعملية الحصول على.

138
00:10:41,620 --> 00:10:45,185
الآن، كيف يمكن لعملية ما بعد العملية

139
00:10:45,185 --> 00:10:49,760
تلقائيا الحصول على معرف الكائن هذا المقابلة للمستخدم؟

140
00:10:49,760 --> 00:10:55,175
تذكر أنه عند تضمين رأس التخويل هنا،

141
00:10:55,175 --> 00:10:57,457
من رأس التفويض،

142
00:10:57,457 --> 00:11:01,055
بالطريقة التي تقوم بها بتفويض المستخدم، قم

143
00:11:01,055 --> 00:11:06,240
بتوجيه خصائص المستخدم التي تم تحميلها بالفعل على كائن الطلب.

144
00:11:06,240 --> 00:11:10,270
وهذا هو المكان الذي ستحصل فيه على الوصول إلى معرف كائن المستخدم.

145
00:11:10,270 --> 00:11:13,914
لذلك، تلميح آخر حول كيفية ملء هذه المعلومات.

146
00:11:13,914 --> 00:11:16,655
لذلك، هذا هو السبب في ملاحظة أنه عندما قمت بإجراء المشاركة،

147
00:11:16,655 --> 00:11:19,625
لم أقم بتحديد المستخدم لأنه

148
00:11:19,625 --> 00:11:23,825
يجب أن يتم

149
00:11:23,825 --> 00:11:28,484
اشتقاق معلومات المستخدم تلقائيًا من ما قدمناه هنا في رأس التفويض.

150
00:11:28,484 --> 00:11:32,565
لذلك، تلميح آخر حول كيفية تنفيذ هذا.

151
00:11:32,565 --> 00:11:36,830
لذلك، وهذا هو السبب في أنني قلت هذه المهمة هو توحيد

152
00:11:36,830 --> 00:11:41,835
لجميع المواضيع التي قمت باستكشافها في هذه الدورة.

153
00:11:41,835 --> 00:11:47,200
الآن، أنا لا تدعم عملية الحصول على معرف طبق معين.

154
00:11:47,200 --> 00:11:50,610
لا معنى لدعم ذلك على المفضلة،

155
00:11:50,610 --> 00:11:53,345
في معرف طبق معين.

156
00:11:53,345 --> 00:11:58,595
بدلا من ذلك، يمكننا إجراء عملية الحصول على المضيف المحلي 3443/المفضلة.

157
00:11:58,595 --> 00:12:01,670
ثم نقوم بإجراء عملية الحصول على.

158
00:12:01,670 --> 00:12:09,398
ستلاحظ على الفور أن المستند الذي يتم إرجاعه إليك يحتوي

159
00:12:09,398 --> 00:12:17,715
على معلومات المستخدم التي تم ملؤها بالفعل بواسطة عملية get هنا.

160
00:12:17,715 --> 00:12:18,950
لذلك، معلومات المستخدم.

161
00:12:18,950 --> 00:12:22,112
لذلك بدلا من معرف المستخدم هناك،

162
00:12:22,112 --> 00:12:26,445
معلومات المستخدم موجودة بالفعل هناك.

163
00:12:26,445 --> 00:12:28,730
ويتم ذلك من خلال سكان مونغو.

164
00:12:28,730 --> 00:12:34,435
لذلك، هذا هو تلميح كبير آخر حول كيفية تنفيذ عملية الحصول على.

165
00:12:34,435 --> 00:12:37,130
ليس فقط يتم ملء معلومات المستخدم في.

166
00:12:37,130 --> 00:12:39,626
الآن لماذا أريد أن يتم ملء معلومات المستخدم في؟

167
00:12:39,626 --> 00:12:44,540
لأن ذلك قد يكون مفيدًا عندما أقوم بعرض المعلومات.

168
00:12:44,540 --> 00:12:46,350
قد لا يكون هذا ضروريًا،

169
00:12:46,350 --> 00:12:49,445
لكنني أفعل ذلك فقط من أجل الاكتمال

170
00:12:49,445 --> 00:12:53,825
لأنه إذا كنت تسترد قائمة المفضلة لمستخدم معين،

171
00:12:53,825 --> 00:12:56,120
فأنت تعرف تلقائيًا من هو المستخدم،

172
00:12:56,120 --> 00:12:59,083
ويقوم هذا المستخدم بتسجيل الدخول على أي حال.

173
00:12:59,083 --> 00:13:01,385
ولكن في حال كنت تريد معلومات المستخدم،

174
00:13:01,385 --> 00:13:06,278
يمكنك تنفيذ هذه العملية للحصول على معلومات هذا المستخدم.

175
00:13:06,278 --> 00:13:10,720
لذلك، فقط لتوضيح لك أن سكان مونغو يمكن استخدامها،

176
00:13:10,720 --> 00:13:16,515
لقد أوضحت ليس فقط أنه في قائمة الأطباق هنا،

177
00:13:16,515 --> 00:13:22,820
يتم ملء المعلومات حول كل طبق بالفعل في هذه الصفيف.

178
00:13:22,820 --> 00:13:24,907
لذلك، إذا كان لديك مجموعة من الأطباق،

179
00:13:24,907 --> 00:13:30,385
يجب ملء معلومات كل من هذه الأطباق في هذه الصفيف.

180
00:13:30,385 --> 00:13:34,670
لذا، هذا هو استخدام سكاني آخر لـ Mongo

181
00:13:34,670 --> 00:13:38,555
الذي ترونه لملء معلومات الأطباق.

182
00:13:38,555 --> 00:13:44,014
فقط من خلال الطريقة التي قمت بإعداد مخطط المفضلة لديك،

183
00:13:44,014 --> 00:13:47,840
وهذا يجب أن يكون ممكنا تلقائيا بالنسبة لك باستخدام

184
00:13:47,840 --> 00:13:52,010
فقط نقطة ملء على قائمة الأطباق هنا.

185
00:13:52,010 --> 00:13:54,103
لذلك، هذا الجزء الثاني.

186
00:13:54,103 --> 00:13:59,213
الآن بعد أن تمكنا من استرداد طريقة الحصول على الأطباق،

187
00:13:59,213 --> 00:14:03,590
اسمحوا لي أن تظهر لكم كيف يمكنك إجراء عملية ما بعد العملية حيث يمكنك

188
00:14:03,590 --> 00:14:08,750
إضافة مجموعة من الأطباق إلى قائمة المفضلة لديك.

189
00:14:08,750 --> 00:14:11,145
الآن، والعودة إلى هذا المنصب،

190
00:14:11,145 --> 00:14:18,145
إذا كنت بحاجة إلى إضافة ليس فقط واحد ولكن مجموعة من الأطباق إلى قائمة المفضلة لديك،

191
00:14:18,145 --> 00:14:19,850
والآن لماذا تريد هذا؟

192
00:14:19,850 --> 00:14:24,980
ربما على جانب العميل قد يكون لديك زر والتي عند

193
00:14:24,980 --> 00:14:31,255
النقر عليها سوف تسمح لك للتحقق من علامة مجموعة من الأطباق من قائمة الأطباق،

194
00:14:31,255 --> 00:14:34,710
ومن ثم إضافتها في لقطة واحدة في قائمة المفضلة لديك.

195
00:14:34,710 --> 00:14:37,390
لذلك، لدعم هذا النوع من العملية،

196
00:14:37,390 --> 00:14:42,295
قد ترغب في السماح بوظيفة ليتم تنفيذها على المفضلة شرطة مائلة هنا.

197
00:14:42,295 --> 00:14:45,641
الآن، عندما يتم تنفيذ المشاركة على المفضلة للشرطة المائلة، مرة أخرى،

198
00:14:45,641 --> 00:14:48,959
ستظل بحاجة إلى رأس التفويض.

199
00:14:48,959 --> 00:14:51,460
ولكن في نص الرسالة،

200
00:14:51,460 --> 00:14:57,493
سنقوم بتخزين قائمة الأطباق كمجموعة من هذا الشكل.

201
00:14:57,493 --> 00:15:01,490
لذا، هذا مستند JSON هنا،

202
00:15:01,490 --> 00:15:04,340
لذا دعني أتأكد من أنه في رأسي،

203
00:15:04,340 --> 00:15:08,107
يكون نوع المحتوى موجودًا بالفعل هناك.

204
00:15:08,107 --> 00:15:14,545
الآن، هذه الوثيقة سوف

205
00:15:14,545 --> 00:15:18,735
تحتوي على مجموعة من الأطباق مثل هذه.

206
00:15:18,735 --> 00:15:22,700
لذلك، سيتم تحديد كل طبق من خلال

207
00:15:22,700 --> 00:15:29,860
قول تسطير القولون ID،

208
00:15:29,860 --> 00:15:34,835
وبعد ذلك هنا سيكون لديهم معرف الطبق،

209
00:15:34,835 --> 00:15:39,760
وهكذا هذا لن يكون سوى مجموعة من الأطباق.

210
00:15:39,760 --> 00:15:46,630
لذلك، اسمحوا لي أن أضيف طبقين إلى قائمتي المفضلة هنا فقط لتوضيح هذه النقطة.

211
00:15:46,630 --> 00:15:51,726
لذلك، اسمحوا لي أن لصق في بطاقات الهوية من اثنين من الأطباق في هذا.

212
00:15:51,726 --> 00:15:56,823
لذلك، عند إجراء وظيفة على المضيف المحلي 3443/المفضلة،

213
00:15:56,823 --> 00:16:02,295
هذه هي الطريقة التي تؤلف بها نص رسالة النشر هنا.

214
00:16:02,295 --> 00:16:07,497
لذلك، سيتم تضمين كل طبق تريد إضافته في هذا التنسيق هنا.

215
00:16:07,497 --> 00:16:09,670
الآن، عندما تقوم بتضمينها في هذا التنسيق،

216
00:16:09,670 --> 00:16:12,425
ثم نشرها إلى جانب

217
00:16:12,425 --> 00:16:20,161
الخادم هذا، سيقوم الخادم في المقابل بإرسال قائمة محدثة من المفضلة لك.

218
00:16:20,161 --> 00:16:23,395
لذلك، عندما تتلقى قائمة محدثة من المفضلة من جانب الخادم،

219
00:16:23,395 --> 00:16:26,300
سترى أن معلومات المستخدم موجودة بالفعل،

220
00:16:26,300 --> 00:16:34,685
ولكن لاحظ كيف يتم تخزين الأطباق المفضلة في هذه المجموعة من معرفات كائن الطبق.

221
00:16:34,685 --> 00:16:38,320
لذلك، أول واحد كنا قد أضفنا بالفعل في العملية السابقة.

222
00:16:38,320 --> 00:16:39,485
وبالتالي فإن اثنين المتبقية،

223
00:16:39,485 --> 00:16:43,990
أضفنا للتو إلى قائمة المفضلة لدينا.

224
00:16:43,990 --> 00:16:47,545
لذلك، يتم إضافة هذه معرفات الكائن اثنين أيضا

225
00:16:47,545 --> 00:16:53,110
في مجموعة الأطباق بلدي في وثيقة المفضلة هنا.

226
00:16:53,110 --> 00:16:56,050
لذا، هناك تَذْهبُ. لذلك، هذه هي الطريقة التي من المفترض

227
00:16:56,050 --> 00:17:02,763
أن تؤدي وظيفة المفضلة على نقطة النهاية مثل هذا.

228
00:17:02,763 --> 00:17:05,340
الآن، دعونا مرة أخرى إجراء عملية الحصول

229
00:17:05,340 --> 00:17:10,160
على المفضلة فقط لمعرفة ما هي الميزات العملية الحصول بالنسبة لنا.

230
00:17:10,160 --> 00:17:12,600
لذلك عندما نقوم بإجراء عملية GET،

231
00:17:12,600 --> 00:17:21,345
ستلاحظ على الفور أنه في وثيقة المفضلة العودة،

232
00:17:21,345 --> 00:17:23,640
لديك معلومات المستخدم هناك،

233
00:17:23,640 --> 00:17:25,065
ثم أسفل هنا،

234
00:17:25,065 --> 00:17:29,820
والأطباق ليست سوى مجموعة من وثائق Json هنا،

235
00:17:29,820 --> 00:17:32,670
كل واحد المقابلة للطبق.

236
00:17:32,670 --> 00:17:35,010
الآن يتم الاعتناء بهذا تلقائيًا من خلال

237
00:17:35,010 --> 00:17:38,360
ملء النمس الذي قمنا به على جانب الخادم.

238
00:17:38,360 --> 00:17:44,525
لذلك يجب ملء جميع هذه المعلومات تلقائيًا على جانب الخادم.

239
00:17:44,525 --> 00:17:50,430
لذلك هذه هي الطريقة التي تعمل بها عمليات النشر الخاصة بك على نقطتي النهاية.

240
00:17:50,430 --> 00:17:56,395
الآن اسمحوا لي أن تظهر لك كيفية تنفيذ عملية DELETE.

241
00:17:56,395 --> 00:18:00,735
الآن لحذف طبق معين.

242
00:18:00,735 --> 00:18:08,193
لذلك اسمحوا لي بإجراء عملية حذف على نقطة نهاية محددة.

243
00:18:08,193 --> 00:18:13,095
لذا سنعود إلى نقطة النهاية هذه،

244
00:18:13,095 --> 00:18:16,470
ثم اسمحوا لي فقط نسخ واحدة من هذه،

245
00:18:16,470 --> 00:18:18,985
وبعد ذلك سأحذف أحد الأطباق.

246
00:18:18,985 --> 00:18:22,585
لذلك لتنفيذ عملية الحذف على أحد الأطباق،

247
00:18:22,585 --> 00:18:23,750
بالطبع كما ترون،

248
00:18:23,750 --> 00:18:26,453
نحن لسنا بحاجة إلى الجسم حتى الآن،

249
00:18:26,453 --> 00:18:29,485
ونحن لسنا بحاجة إلى المحتوى هنا.

250
00:18:29,485 --> 00:18:35,580
كل ما نحتاج إلى القيام به هو إجراء عملية حذف على نقطة النهاية هذه.

251
00:18:35,580 --> 00:18:43,125
حتى هنا ترى أن أفعل لوكالهوست: 3443/المفضلة/ثم معرف الطبق.

252
00:18:43,125 --> 00:18:46,231
ثم اسمحوا لي أن نشر هذا.

253
00:18:46,231 --> 00:18:51,760
لذلك عندما أحذف طبق معين من قائمتي المفضلة،

254
00:18:51,760 --> 00:18:53,695
لاحظت على الفور أن

255
00:18:53,695 --> 00:19:01,555
قائمتي المحدثة من المفضلة يتم إرسالها مرة أخرى إلى جانب العميل من قبل الخادم.

256
00:19:01,555 --> 00:19:03,010
لذلك لديك المستخدم هنا،

257
00:19:03,010 --> 00:19:06,220
ولكن لاحظ أنه في مجموعة الأطباق لدي فقط اثنين من الأطباق الآن.

258
00:19:06,220 --> 00:19:11,105
تلك التي قمت بحذفها للتو ذهبت من قائمة الأطباق تلك

259
00:19:11,105 --> 00:19:12,820
لذلك إذا قمت بإجراء GET الآن،

260
00:19:12,820 --> 00:19:18,265
سوف مجموعة الأطباق الخاصة بك باستمرار إلى الأطباق هناك.

261
00:19:18,265 --> 00:19:24,635
الآن، لنفترض أنني أقوم بإجراء DELETE على المفضلة هنا.

262
00:19:24,635 --> 00:19:30,565
حتى إذا قمت بإجراء DELETE على نقطة النهاية المفضلة نفسها مباشرة،

263
00:19:30,565 --> 00:19:34,540
ثم ما هو عليه القيام به هو حذف جميع المفضلة

264
00:19:34,540 --> 00:19:39,096
بلدي وأيضا حذف وثيقة المفضلة بلدي تماما من جانب الخادم.

265
00:19:39,096 --> 00:19:42,250
لذلك اسمحوا لي أن تنفيذ عملية الحذف هذه على جانب الخادم،

266
00:19:42,250 --> 00:19:47,000
وبعد ذلك سوف يعود حقيقة أنه حذف هذا المستند معين،

267
00:19:47,000 --> 00:19:49,675
لذلك فقط إرجاع هذا المستند على أي حال.

268
00:19:49,675 --> 00:19:54,670
ولكن الآن إذا قمت بإجراء عملية GET على قائمتي المفضلة،

269
00:19:54,670 --> 00:19:57,580
فسوف أقوم باسترداد قيمة خالية هناك.

270
00:19:57,580 --> 00:20:00,880
وهذا يعني أنه ليس لدي هذا المستند على جانب الخادم.

271
00:20:00,880 --> 00:20:03,800
لذلك ذهب المستند المفضل تماما،

272
00:20:03,800 --> 00:20:09,352
عندما أقوم بإجراء عملية DELETE على عمود المضيف المحلي ثلاثة من المفضلة سابقا شرطة مائلة.

273
00:20:09,352 --> 00:20:12,805
الآن مرة أخرى، عندما أضيف طبق جديد إلى

274
00:20:12,805 --> 00:20:16,580
قائمتي المفضلة، سيتم إعداد وثيقة المفضلة في كل مرة أخرى.

275
00:20:16,580 --> 00:20:21,880
هذا جيد تماما بالنسبة لنا للعمل مع.

276
00:20:21,880 --> 00:20:26,440
لذلك مع هذا العرض لقد أظهرت لك

277
00:20:26,440 --> 00:20:32,680
جميع العمليات المختلفة التي تحتاج إلى القيام بها على جانب الخادم الخاص بك.

278
00:20:32,680 --> 00:20:36,670
جميع العمليات المختلفة على نقاط نهاية المسار المختلفة

279
00:20:36,670 --> 00:20:40,754
التي تحتاج إلى تنفيذ أو تنفيذ على جانب الخادم.

280
00:20:40,754 --> 00:20:42,265
الآن بعد أن رأيت

281
00:20:42,265 --> 00:20:47,720
جميع العمليات المختلفة التي يجب أن يدعمها جانب الخادم على الخط المائل المفضلة،

282
00:20:47,720 --> 00:20:48,895
ومفضلة الخط

283
00:20:48,895 --> 00:20:50,995
المائل، ونقاط نهاية معرف طبق مائل،

284
00:20:50,995 --> 00:20:56,033
اسمحوا لي أن قائمة المهام الثلاث التي تحتاج إلى إكمال في هذه المهمة.

285
00:20:56,033 --> 00:21:03,340
المهمة الأولى بالطبع هي تنفيذ المخطط المفضل والنموذج.

286
00:21:03,340 --> 00:21:09,995
هذا سوف تنفذ في مجلد النماذج في ملف يسمى NodeJS المفضلة.

287
00:21:09,995 --> 00:21:12,460
هناك سوف تنفذ المخطط المفضل.

288
00:21:12,460 --> 00:21:13,952
تذكر أن المخطط المفضل سيخزن

289
00:21:13,952 --> 00:21:19,720
المرجع إلى معرف كائن المستند الخاص بالمستخدم،

290
00:21:19,720 --> 00:21:26,212
ومجموعة من معرفات كائن مستند الأطباق.

291
00:21:26,212 --> 00:21:29,440
هذا هو تلميح كبير حول كيف من المفترض

292
00:21:29,440 --> 00:21:33,355
أن تصمم المخطط ونموذج المفضلة لديك.

293
00:21:33,355 --> 00:21:39,190
المهمة الثانية في مهمتك هي تنفيذ

294
00:21:39,190 --> 00:21:46,555
عمليات GET و POST و DELETE على نقطة النهاية المفضلة للشرطة المائلة.

295
00:21:46,555 --> 00:21:49,245
ستحصل GET على قائمة المفضلة، التي يتم

296
00:21:49,245 --> 00:21:52,225
ملؤها تلقائيًا بواسطة تعبئة Mongo،

297
00:21:52,225 --> 00:21:58,360
يجب أن يحتوي POST على قائمة بالأطباق كما هو محدد

298
00:21:58,360 --> 00:22:04,425
في الشكل الذي أظهرته لك للتو في نص رسالة POST.

299
00:22:04,425 --> 00:22:08,695
وهكذا سيتم إضافة مجموعة من الأطباق إلى قائمتك المفضلة،

300
00:22:08,695 --> 00:22:11,800
وعملية DELETE على نقطة النهاية المفضلة للخط المائل سوف

301
00:22:11,800 --> 00:22:16,215
تحذف وثيقة المفضلة لديك تماما من جانب الخادم.

302
00:22:16,215 --> 00:22:22,225
الآن إذا قمت بإجراء عملية POST على شرطة مائلة المفضلة معرف

303
00:22:22,225 --> 00:22:27,405
طبق، فسيتم إضافة طبق معين إلى قائمة المفضلة لديك.

304
00:22:27,405 --> 00:22:29,635
إذا لم يكن المستند المفضل لديك موجودًا،

305
00:22:29,635 --> 00:22:32,455
فمن الواضح أنك تحتاج إلى إنشاء هذا المستند المفضل.

306
00:22:32,455 --> 00:22:36,250
لذلك هذا هو أيضا جزء من عملية POST.

307
00:22:36,250 --> 00:22:39,760
حتى إذا وجدت في أي نقطة أن المستند المفضل غير موجود،

308
00:22:39,760 --> 00:22:41,770
تحتاج إلى أولا إنشاء المستند المفضل

309
00:22:41,770 --> 00:22:44,550
ثم إضافة هذا الطبق إلى المستند المفضل.

310
00:22:44,550 --> 00:22:47,155
لذا هذه نقطة مهمة يجب ملاحظتها أيضًا.

311
00:22:47,155 --> 00:22:51,305
عند إجراء POST على نقطة النهاية المفضلة للخط المائل،

312
00:22:51,305 --> 00:22:53,290
إذا لم يكن المستند المفضل موجودًا،

313
00:22:53,290 --> 00:22:58,150
فستحتاج إلى إنشاء مستند مفضل ثم إضافة الأطباق إلى المستند المفضل لديك.

314
00:22:58,150 --> 00:22:59,410
إذا كان موجودًا بالفعل،

315
00:22:59,410 --> 00:23:02,765
فإنك تقوم فقط بتحديث هذا المستند المفضل.

316
00:23:02,765 --> 00:23:08,480
لذلك هذا هو تلميح آخر حول كيفية تنفيذ عمليات POST.

317
00:23:08,480 --> 00:23:13,735
إذا قمت بإجراء عملية DELETE على الخط المائل المفضلة معرف طبق،

318
00:23:13,735 --> 00:23:18,640
ثم سيتم حذف هذا الطبق المحدد من قائمة المفضلة.

319
00:23:18,640 --> 00:23:23,125
الآن في تنفيذ عمليات POST و DELETE،

320
00:23:23,125 --> 00:23:28,110
يجب عليك التأكد من أنك لن تضيف مكررة إلى معرف الطبق.

321
00:23:28,110 --> 00:23:33,165
لذلك قبل إضافة معرف كائن الطبق إلى قائمة الأطباق،

322
00:23:33,165 --> 00:23:39,490
تحقق دائمًا للتأكد من وجود معرف الطبق بالفعل في قائمة الأطباق.

323
00:23:39,490 --> 00:23:45,430
الآن هذا هو المكان الذي يمكنك فيه استخدام أسلوب مصفوفة indexOf للتحقق لمعرفة ما

324
00:23:45,430 --> 00:23:52,395
إذا كان معرف المستند موجودًا بالفعل في صفيف من المستندات.

325
00:23:52,395 --> 00:23:56,725
لذلك هذا تلميح كبير آخر حول كيفية تنفيذ هذا الجزء.

326
00:23:56,725 --> 00:23:59,610
والمهمة الثالثة بالطبع هو تحميل

327
00:23:59,610 --> 00:24:05,725
جهاز التوجيه المفضل على نقاط النهاية المفضلة شرطة مائلة عن طريق تحديث ملف app.js.

328
00:24:05,725 --> 00:24:08,490
سيتم تنفيذ جهاز التوجيه المفضل نفسه

329
00:24:08,490 --> 00:24:13,710
في مجلد المسارات في ملف favoriterouter.js.

330
00:24:13,710 --> 00:24:17,010
حتى مع هذا لقد وصفت ما كنت

331
00:24:17,010 --> 00:24:21,010
من المفترض أن تنفذ في المهمة الرابعة والنهائية.

332
00:24:21,010 --> 00:24:24,015
وآمل أن تساعدك هذه المهمة

333
00:24:24,015 --> 00:24:27,930
على دمج كل ما تعلمته في الدورة، على

334
00:24:27,930 --> 00:24:32,685
طول الطريق من تصميم جهاز التوجيه السريع،

335
00:24:32,685 --> 00:24:40,720
إلى القيام MongoDB وكذلك مخطط Mongo ونماذج،

336
00:24:40,720 --> 00:24:45,095
وكذلك إجراء مصادقة المستخدم المناسبة.

337
00:24:45,095 --> 00:24:47,685
وكما ذكرت مرة أخرى،

338
00:24:47,685 --> 00:24:52,965
لن يتمكن سوى مستخدم مصادق عليه من الوصول إلى قائمته المفضلة.

339
00:24:52,965 --> 00:24:55,920
حتى عملية GET لا يمكن إلا أن يؤديها

340
00:24:55,920 --> 00:25:00,750
مستخدم مصادق عليه على نقطة النهاية المفضلة شرطة مائلة.

341
00:25:00,750 --> 00:25:05,640
وسوف تجلب فقط المفضلة لهذا المستخدم معين.

342
00:25:05,640 --> 00:25:12,000
لا يمكنك السماح لمستخدم آخر بالوصول إلى المفضلة لمستخدم آخر.

343
00:25:12,000 --> 00:25:15,840
مرة أخرى، يخبرك ذلك أيضًا كيف من المفترض إجراء

344
00:25:15,840 --> 00:25:20,890
المصادقة على نقاط نهاية المسار المختلفة.

345
00:25:20,890 --> 00:25:27,595
مع هذا أكمل وصف المهام في المهمة الرابعة.

346
00:25:27,595 --> 00:25:31,790
استمتعي بإكمال هذه المهمة.