﻿1
00:00:01,100 --> 00:00:02,860
‫Instruktur: Sama seperti

2
00:00:02,860 --> 00:00:06,080
‫Express, Mongoose juga memiliki konsep middleware.

3
00:00:06,080 --> 00:00:08,270
‫Jadi sekarang mari kita belajar

4
00:00:08,270 --> 00:00:11,163
‫tentang jenis middleware pertama, yaitu document middleware.

5
00:00:12,830 --> 00:00:15,330
‫Sekarang, seperti halnya Express, kita dapat menggunakan

6
00:00:15,330 --> 00:00:17,860
‫middleware Mongoose untuk membuat sesuatu terjadi di

7
00:00:17,860 --> 00:00:19,430
‫antara dua peristiwa.

8
00:00:19,430 --> 00:00:22,740
‫Misalnya, setiap kali dokumen baru disimpan

9
00:00:22,740 --> 00:00:25,740
‫ke database, kita dapat menjalankan

10
00:00:25,740 --> 00:00:29,450
‫fungsi antara perintah simpan yang dikeluarkan dan penyimpanan

11
00:00:29,450 --> 00:00:33,480
‫dokumen yang sebenarnya, atau juga setelah penyimpanan yang sebenarnya.

12
00:00:33,480 --> 00:00:35,820
‫Dan itulah alasan mengapa middleware

13
00:00:35,820 --> 00:00:38,590
‫luwak juga disebut pre dan post hooks.

14
00:00:38,590 --> 00:00:41,140
‫Jadi sekali lagi, karena kita bisa

15
00:00:41,140 --> 00:00:44,710
‫mendefinisikan fungsi untuk dijalankan sebelum atau sesudah kejadian tertentu,

16
00:00:44,710 --> 00:00:47,100
‫seperti menyimpan dokumen ke database.

17
00:00:47,100 --> 00:00:52,100
‫Jadi middleware adalah konsep yang sangat mendasar di Mongoose,

18
00:00:52,100 --> 00:00:55,180
‫sama seperti di Express.

19
00:00:55,180 --> 00:00:57,190
‫Dan ada banyak kemungkinan

20
00:00:57,190 --> 00:00:59,780
‫dan kasus penggunaan untuk middleware, dan kami

21
00:00:59,780 --> 00:01:02,540
‫akan menggunakan middleware sepanjang waktu dalam proyek ini.

22
00:01:02,540 --> 00:01:06,050
‫Jadi ada empat jenis middleware di

23
00:01:06,050 --> 00:01:10,080
‫Mongoose: dokumen, query, agregat, dan middleware model.

24
00:01:10,080 --> 00:01:12,110
‫Dan pada kuliah kali ini,

25
00:01:12,110 --> 00:01:14,410
‫kita akan membahas tentang document middleware,

26
00:01:14,410 --> 00:01:18,110
‫yaitu middleware yang dapat bertindak pada dokumen yang sedang diproses.

27
00:01:18,110 --> 00:01:20,920
‫Jadi seperti properti virtual, kami

28
00:01:20,920 --> 00:01:23,613
‫mendefinisikan middleware pada skema,

29
00:01:25,800 --> 00:01:28,543
‫jadi tourSchema. pra.

30
00:01:30,030 --> 00:01:32,850
‫Jadi ini untuk pra middleware, yang sekali lagi,

31
00:01:32,850 --> 00:01:35,450
‫akan dijalankan sebelum acara yang sebenarnya.

32
00:01:35,450 --> 00:01:39,360
‫Dan event tersebut dalam hal ini adalah event save.

33
00:01:39,360 --> 00:01:41,350
‫Dan fungsi panggilan balik ini

34
00:01:41,350 --> 00:01:42,613
‫yang akan kita

35
00:01:43,870 --> 00:01:44,820
‫definisikan

36
00:01:48,200 --> 00:01:51,980
‫selanjutnya, jadi fungsi ini akan dipanggil sebelum dokumen

37
00:01:51,980 --> 00:01:53,943
‫sebenarnya disimpan ke database.

38
00:01:55,407 --> 00:02:00,407
‫Jadi ini adalah middleware dokumen, dan ini berjalan,

39
00:02:02,010 --> 00:02:05,910
‫izinkan saya menulis semuanya di sini.

40
00:02:05,910 --> 00:02:09,640
‫Jadi itu berjalan sebelum perintah simpan

41
00:02:10,550 --> 00:02:13,953
‫dan . membuat perintah.

42
00:02:14,860 --> 00:02:17,040
‫Tapi tidak di insert banyak.

43
00:02:17,040 --> 00:02:22,040
‫Jadi jika kita menggunakan perintah ini di sini, jadi insertMany, maka

44
00:02:22,450 --> 00:02:26,153
‫itu sebenarnya tidak akan memicu save middleware.

45
00:02:27,600 --> 00:02:29,140
‫Jadi selalu ingat itu.

46
00:02:29,140 --> 00:02:32,780
‫Sangat penting untuk menyadari bahwa hanya pada save

47
00:02:32,780 --> 00:02:35,560
‫and on create sebenarnya middleware ini

48
00:02:35,560 --> 00:02:36,943
‫akan dieksekusi.

49
00:02:38,929 --> 00:02:41,740
‫Jadi mari kita mulai dengan membuat konsol sederhana. log dan apa

50
00:02:42,670 --> 00:02:45,253
‫yang akan saya log melalui konsol adalah ini.

51
00:02:46,350 --> 00:02:49,870
‫Jadi di save middleware, kata kunci disk di sini

52
00:02:49,870 --> 00:02:53,100
‫akan menunjuk ke dokumen yang sedang diproses.

53
00:02:53,100 --> 00:02:56,640
‫Dan itulah alasan mengapa disebut dokumen middleware.

54
00:02:56,640 --> 00:02:58,740
‫Sekali lagi, karena dalam fungsi

55
00:02:58,740 --> 00:03:02,470
‫ini, kita memiliki akses ke dokumen yang sedang diproses.

56
00:03:02,470 --> 00:03:05,133
‫Jadi dalam hal ini, dokumen yang sedang disimpan.

57
00:03:06,078 --> 00:03:09,240
‫Jadi izinkan saya dengan cepat menunjukkannya kepada Anda menggunakan

58
00:03:09,240 --> 00:03:11,300
‫konsol ini. catatan.

59
00:03:11,300 --> 00:03:13,610
‫Jadi untuk sekarang memicu fungsi

60
00:03:13,610 --> 00:03:17,800
‫ini, ingat kita perlu menjalankan perintah simpan atau perintah buat.

61
00:03:17,800 --> 00:03:22,020
‫Jadi sekarang kita perlu membuat tur baru menggunakan API

62
00:03:22,020 --> 00:03:26,013
‫kita untuk, ya, kemudian memicu middleware ini.

63
00:03:27,680 --> 00:03:32,680
‫Jadi mari kita pergi ke sini, ke tukang pos, dan saya akan

64
00:03:33,880 --> 00:03:36,830
‫mulai dengan menyimpan dua rute baru

65
00:03:38,450 --> 00:03:42,313
‫yang kita buat di kuliah sebelumnya, jadi dapatkan rencana bulanan.

66
00:03:47,300 --> 00:03:52,300
‫Dan yang ini di sini adalah mendapatkan statistik tur.

67
00:03:56,031 --> 00:03:59,523
‫Jadi sekarang saya bisa menutupnya dan membuat tur baru.

68
00:04:00,430 --> 00:04:03,060
‫Dan kami menentukan data di sini di tubuh.

69
00:04:03,060 --> 00:04:06,300
‫Sekarang tidak semua barang di sini benar-benar diperlukan,

70
00:04:06,300 --> 00:04:08,730
‫jadi mari kita lihat apa yang

71
00:04:08,730 --> 00:04:11,040
‫sebenarnya diperlukan dan singkirkan sisanya.

72
00:04:11,040 --> 00:04:13,483
‫Jadi imageCover diperlukan,

73
00:04:14,610 --> 00:04:18,500
‫ringkasannya, tentu saja harganya, dan ya.

74
00:04:18,500 --> 00:04:20,830
‫Jadi mari kita singkirkan barang-barang yang

75
00:04:21,760 --> 00:04:24,483
‫sebenarnya tidak kita butuhkan di sini hanya untuk meminimalkannya.

76
00:04:26,000 --> 00:04:28,730
‫Jadi peringkat, kuantitas, rata-rata, jadi ini

77
00:04:28,730 --> 00:04:30,080
‫tidak perlu.

78
00:04:36,550 --> 00:04:38,490
‫Jadi saya hanya akan menyebut

79
00:04:38,490 --> 00:04:43,490
‫yang ini di sini sebagai tur uji coba, agar tetap sederhana di sini.

80
00:04:45,702 --> 00:04:49,370
‫Sekarang mari kita kirim permintaan ini dan memang, itu

81
00:04:49,370 --> 00:04:52,420
‫membuat dokumen baru dan sekarang mari

82
00:04:52,420 --> 00:04:56,370
‫kita lihat konsol kita dan lihat dokumen itu di sini.

83
00:04:56,370 --> 00:04:58,650
‫Dan memang, ini dia.

84
00:04:58,650 --> 00:05:01,540
‫Jadi mari kita tingkatkan ini di

85
00:05:01,540 --> 00:05:04,900
‫sini sedikit dan jadi seperti inilah tampilan

86
00:05:04,900 --> 00:05:08,510
‫dokumen kita tepat sebelum disimpan ke dalam database.

87
00:05:08,510 --> 00:05:11,710
‫Jadi di sini kami memiliki peringkat Rata-rata dan kuantitas,

88
00:05:11,710 --> 00:05:13,500
‫yang ditetapkan secara default.

89
00:05:13,500 --> 00:05:17,077
‫Ingat, jadi 4. 5 dan nol, dan

90
00:05:19,185 --> 00:05:21,930
‫kemudian stempel waktu yang dibuat, dan Anda bahkan dapat

91
00:05:21,930 --> 00:05:24,523
‫melihat properti virtual yang kami definisikan di sini.

92
00:05:25,700 --> 00:05:28,100
‫Jadi sekali lagi, ini benar sebelum kita benar-benar

93
00:05:28,100 --> 00:05:30,140
‫menyimpan data ini ke database.

94
00:05:30,140 --> 00:05:31,410
‫Jadi pada saat ini,

95
00:05:31,410 --> 00:05:34,600
‫kita masih dapat bertindak berdasarkan data sebelum disimpan ke

96
00:05:34,600 --> 00:05:36,920
‫database dan itulah yang akan kita

97
00:05:36,920 --> 00:05:38,173
‫lakukan sekarang.

98
00:05:39,520 --> 00:05:43,240
‫Jadi di sini di fungsi middleware kami.

99
00:05:43,240 --> 00:05:45,900
‫Dan yang ingin saya lakukan di sini adalah

100
00:05:45,900 --> 00:05:48,120
‫membuat slug untuk setiap dokumen ini.

101
00:05:48,120 --> 00:05:50,080
‫Jadi ingat bagaimana di bagian pertama,

102
00:05:50,080 --> 00:05:52,510
‫kami membuat slug untuk setiap produk yang

103
00:05:52,510 --> 00:05:54,313
‫kami miliki di toko.

104
00:05:55,180 --> 00:05:57,860
‫Jadi slug pada dasarnya hanyalah sebuah string

105
00:05:57,860 --> 00:06:01,590
‫yang dapat kita masukkan ke dalam URL, biasanya berdasarkan

106
00:06:01,590 --> 00:06:03,570
‫beberapa string seperti namanya.

107
00:06:03,570 --> 00:06:05,780
‫Jadi dalam hal ini, kita akan membuat

108
00:06:05,780 --> 00:06:07,433
‫slug berdasarkan nama turnya.

109
00:06:09,150 --> 00:06:14,150
‫Jadi ingat bagaimana untuk itu kami menggunakan paket slugify.

110
00:06:14,210 --> 00:06:16,360
‫Jadi sekarang mari kita lanjutkan dan instal itu.

111
00:06:20,120 --> 00:06:22,063
‫Baiklah, dan sementara itu, mari

112
00:06:23,430 --> 00:06:25,743
‫kita lanjutkan dan kemudian memintanya di sini.

113
00:06:33,270 --> 00:06:34,980
‫Jadi butuh slugify.

114
00:06:39,100 --> 00:06:41,893
‫Mari kita kembali ke jendela pertama kita di sini, sebenarnya.

115
00:06:43,530 --> 00:06:46,220
‫Dan sekarang, di bawah sini, kami tidak

116
00:06:46,220 --> 00:06:48,550
‫lagi ingin mencatat ini ke konsol.

117
00:06:48,550 --> 00:06:51,720
‫Tapi sebaliknya kita sekarang bisa mengatakan ini, dan

118
00:06:51,720 --> 00:06:54,840
‫ingat, ini adalah dokumen yang sedang diproses.

119
00:06:54,840 --> 00:06:58,060
‫Jadi sekarang kita dapat mendefinisikan properti baru di atasnya.

120
00:06:58,060 --> 00:06:59,860
‫Dan itulah yang saya lakukan.

121
00:06:59,860 --> 00:07:03,250
‫Jadi ini. slug harus slugify, dan

122
00:07:06,210 --> 00:07:08,390
‫kemudian hanya string yang ingin kita

123
00:07:08,390 --> 00:07:13,390
‫buat dari slug, dan jadinya seperti ini. nama dan kemudian kami juga ingin

124
00:07:13,470 --> 00:07:15,890
‫memberikan opsi bahwa semuanya

125
00:07:15,890 --> 00:07:18,653
‫harus dikonversi ke huruf kecil, dan

126
00:07:19,970 --> 00:07:24,220
‫itu lebih rendah: benar, dan sekarang saya akan menyimpannya.

127
00:07:24,220 --> 00:07:26,290
‫Dan satu hal yang

128
00:07:26,290 --> 00:07:28,710
‫belum kita bicarakan adalah fungsi selanjutnya.

129
00:07:28,710 --> 00:07:32,440
‫Jadi seperti di Express, kita juga memiliki fungsi berikutnya di mMngoose

130
00:07:32,440 --> 00:07:35,300
‫middleware, pada dasarnya untuk memanggil middleware berikutnya di

131
00:07:35,300 --> 00:07:37,780
‫stack seperti yang sudah kita ketahui.

132
00:07:37,780 --> 00:07:40,680
‫Sekarang dalam kasus ini, kami hanya memiliki satu fungsi

133
00:07:40,680 --> 00:07:43,100
‫middleware, itulah sebabnya kami tidak mengalami

134
00:07:43,100 --> 00:07:46,433
‫masalah, bahkan tidak memanggil berikutnya, tetapi sekarang mari kita lakukan itu.

135
00:07:47,470 --> 00:07:50,040
‫Dan setiap fungsi middleware, dalam

136
00:07:50,040 --> 00:07:52,723
‫pre save middleware memiliki akses ke berikutnya.

137
00:07:54,492 --> 00:07:57,700
‫Jadi itu persis sama seperti di Express,

138
00:07:57,700 --> 00:08:01,070
‫dan pada akhir middleware kita memanggil next, dan

139
00:08:01,070 --> 00:08:03,300
‫itu akan memanggil middleware berikutnya

140
00:08:03,300 --> 00:08:04,583
‫di stack.

141
00:08:04,583 --> 00:08:07,540
‫Jadi mari kita coba ini lagi.

142
00:08:07,540 --> 00:08:10,556
‫Dan ini akan disebut tur uji coba nomor dua.

143
00:08:10,556 --> 00:08:13,770
‫Sangat sederhana, kirim ke langit,

144
00:08:13,770 --> 00:08:16,900
‫dan mari kita tunggu.

145
00:08:16,900 --> 00:08:20,930
‫Dan sekarang untuk beberapa alasan, itu tidak benar-benar ada di sini.

146
00:08:20,930 --> 00:08:22,950
‫Mari kita lihat apakah ada

147
00:08:22,950 --> 00:08:24,630
‫kesalahan, dan sebenarnya tidak.

148
00:08:24,630 --> 00:08:27,570
‫Tetapi alasan mengapa itu tidak berfungsi

149
00:08:27,570 --> 00:08:31,913
‫adalah karena saat ini kami tidak memiliki siput dalam skema kami.

150
00:08:31,913 --> 00:08:35,360
‫Dan ingat ini benar-benar terjadi pada kami sebelumnya ketika

151
00:08:35,360 --> 00:08:38,150
‫kami hanya memiliki beberapa bidang dalam skema.

152
00:08:38,150 --> 00:08:40,150
‫Dan ketika kami, maka kami akan

153
00:08:40,150 --> 00:08:42,450
‫mendefinisikan beberapa bidang yang tidak ada dalam

154
00:08:42,450 --> 00:08:44,770
‫skema, lalu bidang itu tidak disimpan ke database.

155
00:08:44,770 --> 00:08:47,070
‫Dan hal yang sama sekarang terjadi di

156
00:08:47,070 --> 00:08:50,670
‫sini, jadi kami mendefinisikan properti slug, tetapi itu tidak ada dalam skema kami.

157
00:08:50,670 --> 00:08:54,200
‫Dan karena itu tidak disimpan ke database, jadi mari kita

158
00:08:54,200 --> 00:08:56,990
‫cepat memperbaikinya dan mari kita taruh, oh, saya

159
00:08:56,990 --> 00:08:59,490
‫tidak tahu, itu tidak terlalu penting,

160
00:08:59,490 --> 00:09:01,373
‫dapat meletakkannya di sini

161
00:09:03,210 --> 00:09:06,253
‫tepat setelah nama, jadi siput harus hanya menjadi string.

162
00:09:08,443 --> 00:09:10,363
‫Dan itu harus memperbaikinya.

163
00:09:11,610 --> 00:09:14,823
‫Jadi mari kita kembali dan membuat tur uji coba nomor tiga.

164
00:09:15,880 --> 00:09:18,220
‫Karena tidak bisa sama, karena ingat kita tidak

165
00:09:18,220 --> 00:09:20,453
‫bisa mengadakan tour dengan nama yang sama.

166
00:09:22,260 --> 00:09:26,290
‫Jadi lakukan lagi, dan sekarang memang kami memiliki properti slug di

167
00:09:26,290 --> 00:09:29,900
‫sini dan itu memang berdasarkan namanya, seperti yang Anda

168
00:09:29,900 --> 00:09:31,170
‫lihat di sini.

169
00:09:31,170 --> 00:09:33,853
‫Bagus, jadi mari kita kembali ke sini,

170
00:09:34,770 --> 00:09:36,463
‫akan mengurangi ini sedikit.

171
00:09:37,480 --> 00:09:40,957
‫Jadi di sini kita memiliki middleware pra dokumen.

172
00:09:40,957 --> 00:09:44,000
‫Sekarang mari kita bereksperimen dengan sangat cepat, juga,

173
00:09:44,000 --> 00:09:45,593
‫dengan sebuah post middleware.

174
00:09:47,700 --> 00:09:52,700
‫Jadi turSchema. posting dan mari gunakan save lagi.

175
00:09:55,487 --> 00:09:58,740
‫Dan kemudian fungsi callback, yang dalam kasus post

176
00:09:58,740 --> 00:10:01,090
‫middleware memiliki akses tidak

177
00:10:01,090 --> 00:10:03,860
‫hanya ke next, tetapi juga ke

178
00:10:03,860 --> 00:10:06,823
‫dokumen yang baru saja disimpan ke database.

179
00:10:07,690 --> 00:10:10,883
‫Jadi mari kita sebut itu satu doc dan kemudian berikutnya.

180
00:10:12,193 --> 00:10:14,650
‫Dan fungsi post middleware

181
00:10:14,650 --> 00:10:17,750
‫dijalankan setelah semua fungsi pre

182
00:10:17,750 --> 00:10:20,090
‫middleware selesai, baiklah.

183
00:10:20,090 --> 00:10:23,440
‫Jadi di sini kita sebenarnya tidak lagi memiliki kata kunci disk, tetapi

184
00:10:23,440 --> 00:10:25,910
‫sebagai gantinya kita memiliki dokumen yang pada dasarnya

185
00:10:25,910 --> 00:10:27,853
‫sudah selesai di sini di doc.

186
00:10:30,960 --> 00:10:34,650
‫Jadi mari kita log dokumen yang sudah selesai

187
00:10:34,650 --> 00:10:37,640
‫ke konsol dan kemudian panggil berikutnya.

188
00:10:37,640 --> 00:10:39,713
‫Sekarang dalam kasus ini lagi,

189
00:10:39,713 --> 00:10:43,200
‫kami hanya memiliki satu middleware pos dan jadi kami tidak

190
00:10:43,200 --> 00:10:46,860
‫benar-benar membutuhkan yang berikutnya, tetapi praktik terbaik untuk selalu menyertakannya.

191
00:10:46,860 --> 00:10:50,310
‫Sekarang hal lain yang ingin saya tunjukkan kepada Anda adalah

192
00:10:50,310 --> 00:10:52,470
‫bahwa kita dapat memiliki, tentu saja,

193
00:10:52,470 --> 00:10:56,283
‫beberapa pra middlewares atau juga mengirim middlewares untuk hook yang sama.

194
00:10:57,270 --> 00:11:01,820
‫Dan hook adalah apa yang kami sebut simpan di sini.

195
00:11:01,820 --> 00:11:04,690
‫Jadi middleware di sini pada dasarnya

196
00:11:04,690 --> 00:11:07,810
‫adalah apa yang kita sebut hook pra-penyimpanan.

197
00:11:07,810 --> 00:11:11,490
‫Jadi Anda akan melihat terminologi itu sepanjang waktu.

198
00:11:11,490 --> 00:11:14,173
‫Jadi ada yang menyebutnya middleware, dan ada yang menyebutnya hook.

199
00:11:15,270 --> 00:11:17,260
‫Jadi ini akan menjadi pre save hook

200
00:11:17,260 --> 00:11:18,773
‫atau pre save middleware.

201
00:11:21,880 --> 00:11:25,823
‫Jadi fungsinya, dan yang ini memiliki akses ke berikutnya.

202
00:11:28,770 --> 00:11:31,433
‫Jadi mari kita log sesuatu

203
00:11:33,780 --> 00:11:37,963
‫ke konsol di sini, seperti akan menyimpan dokumen.

204
00:11:40,740 --> 00:11:45,023
‫Dan kemudian berikutnya, dan itu tentu saja, harus berikutnya.

205
00:11:46,880 --> 00:11:48,750
‫Hanya untuk melihat apakah kita mendapatkan beberapa

206
00:11:48,750 --> 00:11:50,653
‫kesalahan, saya akan menghilangkan yang berikutnya di sini.

207
00:11:51,490 --> 00:11:55,283
‫Hanya untuk melihat apa yang terjadi ketika kita tidak menyebutnya.

208
00:11:57,290 --> 00:11:59,080
‫Jadi saya akan membuat tur

209
00:11:59,080 --> 00:12:01,230
‫baru, dan di akhir kuliah ini saya

210
00:12:01,230 --> 00:12:04,543
‫akan menghapus semuanya, tapi untuk saat ini kita membutuhkannya di sini.

211
00:12:06,410 --> 00:12:09,930
‫Dan sekarang Anda melihat bahwa itu tidak benar-benar selesai, jadi

212
00:12:09,930 --> 00:12:12,620
‫kita terjebak dalam satu fungsi middleware yang

213
00:12:12,620 --> 00:12:14,473
‫tidak memiliki panggilan berikutnya.

214
00:12:16,410 --> 00:12:18,343
‫Jadi pada dasarnya kita terjebak di sini.

215
00:12:19,550 --> 00:12:20,970
‫Jadi, mari batalkan

216
00:12:22,810 --> 00:12:25,780
‫permintaan dan dapatkan kembali di sini, dan

217
00:12:25,780 --> 00:12:27,173
‫coba lagi.

218
00:12:29,550 --> 00:12:32,070
‫Dan sekarang itu benar-benar berhasil.

219
00:12:32,070 --> 00:12:35,740
‫Jadi slug kami ada di sini, kan, jadi mari

220
00:12:35,740 --> 00:12:38,590
‫kita lihat konsol kami, dan memang,

221
00:12:38,590 --> 00:12:41,973
‫pra middleware kedua kami juga berjalan, jadi yang

222
00:12:42,850 --> 00:12:45,797
‫logging akan menyimpan dokumen dan kemudian

223
00:12:45,797 --> 00:12:49,320
‫middleware posting kami kemudian masuk ke konsol dokumen

224
00:12:49,320 --> 00:12:51,570
‫terakhir, dan itu juga

225
00:12:51,570 --> 00:12:55,043
‫harus sudah memiliki siput dan ya, ini dia.

226
00:12:56,050 --> 00:12:57,870
‫Dan hanya itu yang harus

227
00:12:57,870 --> 00:13:00,360
‫saya tunjukkan kepada Anda tentang middleware dokumen.

228
00:13:00,360 --> 00:13:03,065
‫Sekarang saya hanya akan mengomentari keduanya di sini

229
00:13:03,065 --> 00:13:06,680
‫karena saya tidak ingin mengotori log saya di sini sepanjang waktu

230
00:13:06,680 --> 00:13:09,110
‫dengan konsol ini. log, tapi saya

231
00:13:09,110 --> 00:13:11,190
‫masih menyimpannya di sini, sekali lagi,

232
00:13:11,190 --> 00:13:12,173
‫sebagai referensi.

233
00:13:13,530 --> 00:13:16,330
‫Jadi yang saya ingin Anda ingat dari kuliah

234
00:13:16,330 --> 00:13:18,980
‫ini adalah bahwa kita dapat menjalankan middleware

235
00:13:18,980 --> 00:13:20,930
‫sebelum dan sesudah peristiwa tertentu.

236
00:13:20,930 --> 00:13:23,160
‫Dan dalam kasus document

237
00:13:23,160 --> 00:13:25,850
‫middleware, event tersebut biasanya adalah event save.

238
00:13:25,850 --> 00:13:29,260
‫Dan kemudian dalam fungsi middleware itu sendiri, kita

239
00:13:29,260 --> 00:13:31,660
‫memiliki akses ke kata kunci

240
00:13:31,660 --> 00:13:35,163
‫disk, yang akan menunjuk pada dokumen yang sedang disimpan.

241
00:13:36,190 --> 00:13:38,232
‫Dan juga sangat penting untuk

242
00:13:38,232 --> 00:13:42,650
‫diingat bahwa save middleware ini hanya berjalan untuk metode save

243
00:13:42,650 --> 00:13:44,650
‫and create Mongoose.

244
00:13:44,650 --> 00:13:47,690
‫Itu tidak akan berjalan, misalnya, untuk memasukkan banyak dan

245
00:13:47,690 --> 00:13:50,490
‫juga tidak untuk menemukan satu dan memperbarui

246
00:13:50,490 --> 00:13:54,380
‫atau menemukan dengan ID dan memperbarui, yang sudah kita gunakan sebelumnya.

247
00:13:54,380 --> 00:13:58,110
‫Jadi misalnya, kita di suatu tempat di sini

248
00:14:00,870 --> 00:14:04,960
‫kita memiliki findByIdAndUpdate, tapi itu tidak akan memicu

249
00:14:04,960 --> 00:14:06,862
‫save middleware ini.

250
00:14:06,862 --> 00:14:09,610
‫Jadi itu sangat penting untuk diingat

251
00:14:09,610 --> 00:14:11,550
‫karena sebenarnya sedikit kemudian

252
00:14:11,550 --> 00:14:14,950
‫dalam proyek ini, kita harus mengatasi batasan itu.

253
00:14:14,950 --> 00:14:17,160
‫Baiklah, jadi ini adalah

254
00:14:17,160 --> 00:14:20,880
‫middleware dokumen untuk memanipulasi dokumen yang sedang disimpan.

255
00:14:20,880 --> 00:14:23,833
‫Selanjutnya, kita akan berbicara tentang middleware query.

