1
00:00:03,710 --> 00:00:10,380
الآن بعد أن كان لدينا نظرة عامة سريعة على Mongoose ODM

2
00:00:10,380 --> 00:00:16,710
وكيف يجلب Mongoose المخططات لهيكلة المستندات التي نخزنها في MongoDB لدينا،

3
00:00:16,710 --> 00:00:19,830
دعونا ننظر في كيفية الاستفادة من

4
00:00:19,830 --> 00:00:27,000
وحدة عقدة Mongoose ومن ثم دمجها في تطبيق العقدة لدينا.

5
00:00:27,000 --> 00:00:31,065
ثم استخدم Mongoose للتواصل مع

6
00:00:31,065 --> 00:00:35,760
خادم MongoDB الخاص بنا ثم تخزين

7
00:00:35,760 --> 00:00:41,355
المستندات واستردادها بمعلومات البنية في المستندات.

8
00:00:41,355 --> 00:00:44,830
للبدء في هذا التمرين،

9
00:00:44,830 --> 00:00:48,080
انتقل إلى موقع مناسب على جهاز الكمبيوتر الخاص بك.

10
00:00:48,080 --> 00:00:52,760
لذلك، أنا هنا في مجلد عقدة جس حيث تم تخزين

11
00:00:52,760 --> 00:00:57,020
جميع الأمثلة من هذه الدورة وبعد ذلك أنا ذاهب إلى

12
00:00:57,020 --> 00:01:02,210
إنشاء مجلد جديد باسم عقدة النمس.

13
00:01:02,210 --> 00:01:10,320
هذا هو المكان الذي سنقوم بإنشاء تطبيق العقدة باستخدام Mongoose المقبل.

14
00:01:10,320 --> 00:01:12,900
في المحطة الطرفية أو نافذة الأوامر،

15
00:01:12,900 --> 00:01:19,080
انتقل إلى مجلد Mongoose العقدة ثم قم بتهيئة تطبيق عقدة هناك.

16
00:01:19,080 --> 00:01:22,385
لذلك، اسمحوا لي أن اكتب npm init ثم

17
00:01:22,385 --> 00:01:26,359
قم بتهيئة تطبيق العقدة ومن ثم أود تسمية التطبيق

18
00:01:26,359 --> 00:01:34,174
كما عقدة النمس ونقطة الدخول هي index.js git التاريخ

19
00:01:34,174 --> 00:01:42,590
والكلمات الرئيسية والمؤلف والترخيص وسنقول حسنا.

20
00:01:42,590 --> 00:01:49,574
بمجرد إنشاء ملف package.json الخاص بالعقدة،

21
00:01:49,574 --> 00:01:54,500
افتح المشروع في محرر النصوص الذي تختاره.

22
00:01:54,500 --> 00:02:02,809
لذلك، هنا لدي مشروعي مفتوح في فيسوال ستوديو.

23
00:02:02,809 --> 00:02:05,915
اسمحوا لي أن أذهب إلى ملف package.json ثم إضافة في

24
00:02:05,915 --> 00:02:14,750
البرنامج النصي بدء التشغيل ومن ثم

25
00:02:14,750 --> 00:02:24,160
سنقول بدء مؤشر عقدة كالمعتاد كلما بدأنا مع تطبيق عقدة جديدة.

26
00:02:24,160 --> 00:02:29,945
ثم، والذهاب إلى المحطة أو نافذة الأوامر، دعونا تثبيت Mongoose.

27
00:02:29,945 --> 00:02:37,290
لذلك، في موجه نوع npm تثبيت Mongoose، حفظ.

28
00:02:39,470 --> 00:02:45,570
الذي في الوقت الحالي هو النمس 5.1.7.

29
00:02:45,570 --> 00:02:49,760
لذا، هذه هي الإصدارات التي سأستخدمها في هذه الدورة.

30
00:02:49,760 --> 00:02:54,920
ثم الذهاب إلى طلبي في المحرر.

31
00:02:54,920 --> 00:03:01,430
اسمحوا لي إنشاء مجلد فرعي في المشروع يسمى نماذج.

32
00:03:01,430 --> 00:03:07,320
لذلك، هذا هو المكان الذي سأقوم بتخزين جميع النماذج لطلبي.

33
00:03:07,340 --> 00:03:10,230
في مجلد النماذج،

34
00:03:10,230 --> 00:03:15,170
اسمحوا لي إنشاء ملف جديد باسم dishes.js.

35
00:03:15,170 --> 00:03:19,535
لذلك، هذا هو المكان الذي سأقوم بإنشاء المخطط ونموذج

36
00:03:19,535 --> 00:03:24,680
لمستندات أطباقي التي سأقوم بتخزينها،

37
00:03:24,680 --> 00:03:29,770
مجموعة الأطباق التي تخزن الوثائق لكل أطباق.

38
00:03:29,770 --> 00:03:36,730
لذلك، هناك حق، اسمحوا لي أولا استيراد النمس.

39
00:03:39,320 --> 00:03:47,880
لذا، سنحتاج إلى Mongoose في هذا الملف ثم نقول

40
00:03:47,880 --> 00:03:57,940
مخطط const هو مخطط Mongoose.

41
00:03:59,420 --> 00:04:03,510
ثم، سنقوم بإنشاء المخطط هنا.

42
00:04:03,510 --> 00:04:13,845
لذلك، سنقول كونست ديششيما مخطط جديد.

43
00:04:13,845 --> 00:04:19,590
لذا، هذا هو المكان الذي أحدد فيه المخطط لطبقي.

44
00:04:20,830 --> 00:04:27,270
داخل هذا المخطط، اسمحوا لي أن تحديد القيم المختلفة.

45
00:04:27,270 --> 00:04:29,830
لذلك، سأقول الاسم،

46
00:04:29,890 --> 00:04:34,405
وهو نوع String.

47
00:04:34,405 --> 00:04:41,480
لذلك، هذا هو نوع المخطط ومن ثم هذا أود أن أعلن كما هو مطلوب.

48
00:04:41,480 --> 00:04:43,460
لذا، أنا سَأَقُولُ صحيحُ

49
00:04:43,460 --> 00:04:52,790
لذلك، سيكون لكل مستند الاسم كحقل مطلوب هناك، وبعد ذلك

50
00:04:52,790 --> 00:04:57,185
سأعلن أيضًا عن هذا كمعنى فريد أنه

51
00:04:57,185 --> 00:05:02,545
لا يجب أن يكون هناك وثيقتان لهما نفس حقل الاسم هناك.

52
00:05:02,545 --> 00:05:08,230
لذلك، هذا هو الحقل الأول في وثيقتي.

53
00:05:10,190 --> 00:05:19,440
ثم، سوف نقوم أيضا بتضمين حقل آخر يسمى باسم، وصف.

54
00:05:19,440 --> 00:05:29,205
الوصف هو من سلسلة النوع والمطلوب true.

55
00:05:29,205 --> 00:05:35,165
أيضا، يمكننا أن يكون Mongoose تلقائيا إدراج

56
00:05:35,165 --> 00:05:41,639
الطوابع الزمنية في نموذجنا.

57
00:05:41,639 --> 00:05:50,340
لذلك، هناك الحق يمكننا فقط إعداد الطوابع الزمنية العلم: صحيح.

58
00:05:50,340 --> 00:05:55,810
لذا، سيؤدي ذلك تلقائيًا إلى إضافة

59
00:05:55,810 --> 00:06:01,340
الطوابع الزمنية التي تم إنشاؤها وتحديثها في كل مستند يتم تخزينه

60
00:06:01,340 --> 00:06:07,235
في تطبيقنا وسيقوم تلقائيًا بتحديث هذه القيم.

61
00:06:07,235 --> 00:06:11,330
كلما قمنا بتحديث المستند وسيتم

62
00:06:11,330 --> 00:06:15,390
تهيئة ما تم إنشاؤه تلقائيًا عندما يكون المستند أول منشئ في هذا الوقت.

63
00:06:15,390 --> 00:06:22,680
بعد هذا، سوف نقول أطباق فار.

64
00:06:22,680 --> 00:06:24,549
لذا، بالنظر

65
00:06:24,549 --> 00:06:29,605
إلى المخطط، سنقوم الآن ببناء النموذج من هذا المخطط.

66
00:06:29,605 --> 00:06:35,215
لذلك، سنقول نموذج النمس وطبق،

67
00:06:35,215 --> 00:06:43,570
وهذا سيكون باستخدام مخطط الطبق الذي أعلناه للتو في وقت سابق.

68
00:06:43,570 --> 00:06:48,590
ثم سنقوم بتصدير

69
00:06:48,590 --> 00:06:55,725
هذا النموذج من هذا الملف هنا.

70
00:06:55,725 --> 00:06:58,410
لذلك، سنقول أطباق تصدير وحدة.

71
00:06:58,410 --> 00:07:00,545
لذا، قمنا الآن ببناء

72
00:07:00,545 --> 00:07:05,780
مخطط Mongoose والنموذج المقابل ويتم تصدير النموذج الآن من هنا.

73
00:07:05,780 --> 00:07:10,580
لذلك، يمكن استيراد هذا في تطبيقنا واستخدامها.

74
00:07:10,580 --> 00:07:13,345
لذلك، داخل مجلد المشروع لدينا،

75
00:07:13,345 --> 00:07:20,415
اسمحوا لي إنشاء ملف جديد باسم index.js.

76
00:07:20,415 --> 00:07:23,265
في ملف index.js،

77
00:07:23,265 --> 00:07:31,450
اسمحوا لي أولا تتطلب Mongoose،

78
00:07:31,820 --> 00:07:34,900
وبعد ذلك يمكننا أن نقول

79
00:07:34,900 --> 00:07:44,970
أطباق const تتطلب نماذج الأطباق.

80
00:07:44,970 --> 00:07:49,210
لأننا قد أنشأنا بالفعل نموذج الأطباق

81
00:07:49,210 --> 00:07:55,740
في ملف أطباق النماذج هناك ومن ثم نحن نطلب ذلك هنا.

82
00:07:55,740 --> 00:08:02,975
الآن، لإنشاء الاتصال بخادم Mongo،

83
00:08:02,975 --> 00:08:09,330
سنقول const URL mongodb.

84
00:08:09,840 --> 00:08:17,110
المضيف المحلي 27017، الارتباك.

85
00:08:17,110 --> 00:08:25,760
لذا، فإن قاعدة البيانات هذه هي تلك التي سنقوم بالاتصال بها من تطبيقنا

86
00:08:25,760 --> 00:08:35,125
وبعد ذلك يمكننا إنشاء الاتصال بالقول const Connect Mongoose.

87
00:08:35,125 --> 00:08:38,195
يدعم Mongoose طريقة الاتصال هذه،

88
00:08:38,195 --> 00:08:41,695
والتي تأخذ عنوان URL كمعلمة أولى.

89
00:08:41,695 --> 00:08:44,250
لذلك بمجرد أن نكون قد أنشأنا هذا،

90
00:08:44,250 --> 00:08:49,470
ثم نقول ببساطة الاتصال ثم.

91
00:08:49,470 --> 00:08:52,280
لاحظ أنه بما أننا نستخدم بالفعل الوعود،

92
00:08:52,280 --> 00:08:57,680
يمكننا فقط أن نقول الاتصال ثم ثم هذا سوف يستغرق

93
00:08:57,680 --> 00:09:03,774
وظيفة كمعلمة

94
00:09:03,774 --> 00:09:10,175
وداخل هنا يمكننا الآن الاتصال بقاعدة البيانات.

95
00:09:10,175 --> 00:09:13,550
حتى الآن مرة واحدة يتم تأسيس هذا الاتصال،

96
00:09:13,550 --> 00:09:17,800
واسمحوا لي أن تفعل سجل وحدة التحكم

97
00:09:17,800 --> 00:09:26,060
قائلا متصلا بشكل صحيح إلى الخادم،

98
00:09:26,100 --> 00:09:36,355
وهنا يمكنني إنشاء

99
00:09:36,355 --> 00:09:45,560
طبق جديد بالقول فار طبق جديد ثم أطباق وداخل هنا يمكنني تحديد وثيقة لذلك أنا إنشاء

100
00:09:45,560 --> 00:09:50,170
طبق جديد من هذا النوع ثم هنا

101
00:09:50,170 --> 00:09:55,510
سأحدد الحقلين المطلوبين.

102
00:09:55,510 --> 00:09:57,920
لذلك سأقول الاسم

103
00:10:07,950 --> 00:10:16,390
والوصف وهكذا هذا هو كيف يمكنك إنشاء طبق جديد وبعد ذلك بمجرد إنشاء

104
00:10:16,390 --> 00:10:24,910
طبق جديد من النموذج سوف نقول ببساطة طبق جديد حفظ.

105
00:10:24,910 --> 00:10:29,760
ستؤدي طريقة الحفظ إلى

106
00:10:29,760 --> 00:10:35,060
حفظ قيمة الطبق هذه ثم كما تتوقع سيعود وعد

107
00:10:35,060 --> 00:10:45,165
ثم هنا سوف نحصل على قيمة الطبق كمكالمة مرة أخرى هناك وبعد ذلك،

108
00:10:45,165 --> 00:10:54,940
يمكنني ببساطة تسجيل قيمة الطبق هنا وبعد ذلك سوف نقول

109
00:10:54,940 --> 00:11:00,915
أطباق تجد وهكذا سنجد

110
00:11:00,915 --> 00:11:07,090
كل الأطباق ومن ثم قل EXEC.

111
00:11:07,090 --> 00:11:10,255
سيضمن exec أن يتم

112
00:11:10,255 --> 00:11:15,250
تنفيذ ذلك وأنه سيعود وعد بحيث يتم

113
00:11:15,250 --> 00:11:19,660
إرجاع الوعد بحيث يمكن بعد ذلك

114
00:11:19,660 --> 00:11:27,040
سلسلة الطريقة إلى ما تبقى منها.

115
00:11:27,040 --> 00:11:33,975
لذلك ترى كيف أستخدم الوعود ثم أقوم باستدعاء الطريقة السابقة حتى

116
00:11:33,975 --> 00:11:41,395
يجد هذا الشخص جميع الأطباق داخل قاعدة البيانات الخاصة بي،

117
00:11:41,395 --> 00:11:45,905
في مجموعة الأطباق ثم يجعله متاحًا لي.

118
00:11:45,905 --> 00:11:55,550
لذلك عندما أحصل على الأطباق ثم يمكنني فقط وحدة التحكم تسجيل الأطباق فقط لمعرفة ما يتم

119
00:11:55,550 --> 00:11:58,790
إرجاعه وهذا من الواضح في هذه المرحلة يجب أن

120
00:11:58,790 --> 00:12:02,710
يعود هذا الطبق واحد الذي قمت بإدخاله في

121
00:12:02,710 --> 00:12:10,940
مجموعة الأطباق الخاصة بي وبعد ذلك سنقول

122
00:12:11,010 --> 00:12:15,550
إرجاع أطباق إزالة مع

123
00:12:15,550 --> 00:12:19,930
كائن جافا سكريبت فارغ والتي سوف إزالة جميع الأطباق من

124
00:12:19,930 --> 00:12:24,384
قاعدة البيانات وإرجاع

125
00:12:24,384 --> 00:12:31,790
اتصال النمس قريب الذي يغلق الاتصال بقاعدة البيانات.

126
00:12:35,040 --> 00:12:38,830
وقبض على أي خطأ في هذه المرحلة.

127
00:12:38,830 --> 00:12:49,430
لذلك سنستخدم المصيد ثم سجل وحدة التحكم.

128
00:12:50,600 --> 00:12:57,820
هذا كل شيء لذلك ما نقوم به هنا هو أننا نخلق هذا الطبق الجديد ثم نقوم

129
00:12:57,820 --> 00:13:04,255
بحفظ الطبق ثم نجد كل الأطباق من المجموعة.

130
00:13:04,255 --> 00:13:06,740
هذا كل شيء نحن نستخدم الوعود هنا،

131
00:13:06,740 --> 00:13:10,435
لذا قيدنا جميع الأوكار هنا. هذا كل شيء

132
00:13:10,435 --> 00:13:15,595
دعونا حفظ التغييرات ومن ثم نرى تنفيذ هذا التطبيق.

133
00:13:15,595 --> 00:13:17,455
انتقل إلى المحطة،

134
00:13:17,455 --> 00:13:21,505
في بداية npm نوع موجه

135
00:13:21,505 --> 00:13:25,735
وسترى أن تطبيق عقدة بلدي يعمل ومن ثم يظهر،

136
00:13:25,735 --> 00:13:33,110
أولا، أنه قد خلق هذا الطبق معين.

137
00:13:33,110 --> 00:13:37,285
لاحظ على وجه الخصوص، أن هذين الحقلين، اللذين تم

138
00:13:37,285 --> 00:13:39,365
تحديثهما وإنشائهما في،

139
00:13:39,365 --> 00:13:43,465
تم إضافة هذين الطوابع الزمنية تلقائيًا إلى

140
00:13:43,465 --> 00:13:47,790
الطبق هنا وحتى تتمكن من رؤية أن تم إنشاؤه

141
00:13:47,790 --> 00:13:51,630
وتحديثه في الطوابع الزمنية هي نفسها تمامًا في الوقت الحالي

142
00:13:51,630 --> 00:13:57,235
ثم يتم إضافة المعرف تلقائيًا في.

143
00:13:57,235 --> 00:14:03,210
في الخطوة التالية نقوم بطباعة جميع الأطباق التي تم استردادها وحتى

144
00:14:03,210 --> 00:14:10,340
تتمكن من رؤية أن هذا الطبق واحد هو في المجموعة،

145
00:14:10,340 --> 00:14:15,935
مجموعة الأطباق، وهذا هو ما يتم طباعته على الشاشة هنا.

146
00:14:15,935 --> 00:14:25,660
دعونا الآن تهيئة مستودع Git ثم دعونا إعداد ملف gitignore حصلت

147
00:14:25,660 --> 00:14:35,125
حتى الذهاب إلى المحرر ثم نقوم بإنشاء ملف.gitignore ثم إضافة

148
00:14:35,125 --> 00:14:40,240
وحدات العقدة إلى ملف gitignore وحفظ التغييرات

149
00:14:40,240 --> 00:14:45,325
ثم العودة إلى المطالبة اسمحوا لي أن

150
00:14:45,325 --> 00:14:48,550
اكتب حالة git ونرى أن

151
00:14:48,550 --> 00:14:51,955
لدينا هذه الملفات التي لم يتم فحصها لذلك سنقول

152
00:14:51,955 --> 00:14:56,545
git إضافة ثم git

153
00:14:56,545 --> 00:15:04,535
ارتكاب الرسالة Mongoose الجزء الأول.

154
00:15:04,535 --> 00:15:08,110
مع هذا نكمل هذا التمرين.

155
00:15:08,110 --> 00:15:14,300
في هذا التمرين رأينا مدى سهولة إعداد تطبيق عقدة مع

156
00:15:14,300 --> 00:15:21,335
النمس والاتصال بخادم MongoDB الخاص بنا ثم التفاعل معه.

157
00:15:21,335 --> 00:15:24,985
الآن بما أن النمس يبني على خادم MongoDB،

158
00:15:24,985 --> 00:15:28,980
يمكن لـ Mongoose الوصول إلى جميع الطرق المختلفة

159
00:15:28,980 --> 00:15:32,690
التي يدعمها برنامج تشغيل MongoDB أيضًا.