﻿1
00:00:01,210 --> 00:00:03,880
‫Instruktur: Jadi, setelah semua pembicaraan tentang middleware, sekarang

2
00:00:03,880 --> 00:00:05,290
‫mari kita lanjutkan

3
00:00:05,290 --> 00:00:07,463
‫dan membuat fungsi middleware kita sendiri.

4
00:00:09,000 --> 00:00:10,810
‫Dan sekali lagi, ingat bahwa

5
00:00:10,810 --> 00:00:12,930
‫kita sebenarnya sudah menggunakan middleware sebelumnya.

6
00:00:12,930 --> 00:00:14,380
‫Jadi mari kita lihat itu.

7
00:00:15,730 --> 00:00:18,350
‫Dan, di suatu tempat di sini.

8
00:00:18,350 --> 00:00:20,450
‫Jadi, Anda lihat bahwa

9
00:00:20,450 --> 00:00:24,530
‫untuk menggunakan middleware, kami menggunakan aplikasi dot use, oke?

10
00:00:24,530 --> 00:00:28,190
‫Jadi, metode penggunaan adalah metode yang kami gunakan untuk,

11
00:00:28,190 --> 00:00:30,030
‫ya, benar-benar menggunakan middleware.

12
00:00:30,030 --> 00:00:33,800
‫Jadi, tambahkan middleware ke tumpukan middleware kami, oke?

13
00:00:33,800 --> 00:00:37,520
‫Jadi express dot json ini memanggil metode json ini pada

14
00:00:37,520 --> 00:00:39,620
‫dasarnya mengembalikan sebuah fungsi, oke?

15
00:00:39,620 --> 00:00:42,650
‫Dan fungsi itu kemudian ditambahkan ke tumpukan middleware.

16
00:00:42,650 --> 00:00:43,900
‫Jadi, mirip dengan

17
00:00:43,900 --> 00:00:46,220
‫itu, kita dapat membuat fungsi middleware kita sendiri.

18
00:00:46,220 --> 00:00:48,190
‫Jadi, ayo lakukan sekarang.

19
00:00:48,190 --> 00:00:51,283
‫Jadi, tentu saja, kita masih perlu menggunakan aplikasi dot use.

20
00:00:53,840 --> 00:00:56,810
‫Oke, jadi sekarang, di sini, yang harus kita lakukan

21
00:00:56,810 --> 00:01:00,820
‫adalah membuat path di fungsi kita yang ingin kita tambahkan ke tumpukan middleware.

22
00:01:00,820 --> 00:01:02,730
‫Jadi, ingat dari video terakhir

23
00:01:02,730 --> 00:01:04,520
‫bahwa, tentu saja, di

24
00:01:04,520 --> 00:01:08,340
‫setiap fungsi middleware, kami memiliki akses ke permintaan dan responsnya, oke?

25
00:01:08,340 --> 00:01:10,663
‫Tetapi juga, kami memiliki fungsi berikutnya.

26
00:01:11,890 --> 00:01:15,060
‫Jadi, seperti ini, kita edit sebagai argumen ketiga

27
00:01:15,060 --> 00:01:17,580
‫untuk fungsi middleware ini, oke?

28
00:01:17,580 --> 00:01:19,970
‫Dan seperti ini, express kemudian mengetahui

29
00:01:19,970 --> 00:01:22,370
‫bahwa kita sebenarnya mendefinisikan middleware di sini.

30
00:01:23,270 --> 00:01:24,820
‫Baiklah.

31
00:01:24,820 --> 00:01:26,160
‫Sekarang, seperti sebelumnya,

32
00:01:26,160 --> 00:01:28,920
‫sebenarnya, kita bisa menyebut argumen ini di sini sebagai

33
00:01:28,920 --> 00:01:32,950
‫sesuatu yang lain, seperti X, atau N, atau, itu tidak terlalu penting.

34
00:01:32,950 --> 00:01:34,270
‫Yang penting

35
00:01:34,270 --> 00:01:36,540
‫adalah argumen ketiga untuk fungsi ini.

36
00:01:36,540 --> 00:01:39,360
‫Jadi express pada dasarnya meneruskan fungsi

37
00:01:39,360 --> 00:01:42,780
‫berikutnya sebagai argumen ketiga ke dalam fungsi middleware ini.

38
00:01:42,780 --> 00:01:44,500
‫Dan kita kemudian dapat menyebutnya apa pun yang kita inginkan.

39
00:01:44,500 --> 00:01:47,720
‫Tapi sekali lagi, selanjutnya benar-benar konvensi di express,

40
00:01:47,720 --> 00:01:49,420
‫dan untuk menghindari

41
00:01:49,420 --> 00:01:52,450
‫kebingungan, kami selalu menggunakan nama ini, oke?

42
00:01:52,450 --> 00:01:54,250
‫Dan hal yang sama untuk permintaan dan

43
00:01:54,250 --> 00:01:57,590
‫tanggapan, seperti yang saya sebutkan sebelumnya, kami dapat memanggil mereka sesuatu yang lain.

44
00:01:57,590 --> 00:02:00,410
‫Tetapi konvensinya adalah memanggil mereka seperti ini.

45
00:02:00,410 --> 00:02:02,470
‫Bagaimanapun, mari kita log sesuatu ke konsol,

46
00:02:02,470 --> 00:02:04,080
‫di sini, di fungsi middleware

47
00:02:04,080 --> 00:02:06,650
‫ini, hanya agar kita memiliki beberapa kode untuk benar-benar

48
00:02:06,650 --> 00:02:08,423
‫dijalankan setiap kali ada permintaan baru.

49
00:02:09,280 --> 00:02:10,410
‫Mari kita

50
00:02:12,510 --> 00:02:13,753
‫menyapa dari middleware.

51
00:02:15,850 --> 00:02:18,980
‫Dan tambahkan beberapa emoji di sini, sekali lagi, untuk membuatnya sedikit menonjol.

52
00:02:18,980 --> 00:02:20,133
‫Saya sangat suka itu.

53
00:02:21,876 --> 00:02:22,709
‫Dan apa yang terjadi di sini?

54
00:02:22,709 --> 00:02:23,750
‫Benar.

55
00:02:23,750 --> 00:02:26,210
‫Jadi itulah kode yang ingin kita jalankan di sini.

56
00:02:26,210 --> 00:02:28,690
‫Dan sekarang, seperti yang kita bicarakan di

57
00:02:28,690 --> 00:02:31,780
‫video terakhir, kita sebenarnya perlu memanggil fungsi berikutnya, oke?

58
00:02:31,780 --> 00:02:33,510
‫Dan jika kita tidak

59
00:02:33,510 --> 00:02:35,570
‫menelepon berikutnya di sini, maka siklus

60
00:02:35,570 --> 00:02:37,750
‫permintaan/tanggapan akan benar-benar macet pada saat ini.

61
00:02:37,750 --> 00:02:39,290
‫Kami tidak akan dapat

62
00:02:39,290 --> 00:02:43,090
‫melanjutkan, dan kami tidak akan pernah mengirim kembali tanggapan kepada klien.

63
00:02:43,090 --> 00:02:45,660
‫Jadi saya tidak bisa cukup menekankan betapa pentingnya

64
00:02:45,660 --> 00:02:48,773
‫untuk tidak pernah lupa menggunakan next di semua middleware Anda.

65
00:02:50,230 --> 00:02:52,290
‫Oke, dan sesederhana itu.

66
00:02:52,290 --> 00:02:55,880
‫Yang harus kita lakukan adalah menentukan selanjutnya.

67
00:02:55,880 --> 00:02:57,330
‫Jadi, argumen ini di sini.

68
00:02:57,330 --> 00:02:59,820
‫Dan kemudian benar-benar memanggil fungsi itu seperti ini.

69
00:02:59,820 --> 00:03:00,653
‫Oke.

70
00:03:00,653 --> 00:03:03,087
‫Dan dengan itu, kami sebenarnya siap untuk mengujinya.

71
00:03:03,087 --> 00:03:04,370
‫Dan yang harus kita

72
00:03:04,370 --> 00:03:06,763
‫lakukan adalah mengirim permintaan sederhana ke API kita.

73
00:03:08,900 --> 00:03:11,270
‫Jadi, inilah APInya.

74
00:03:11,270 --> 00:03:13,083
‫Mari kita tutup yang satu ini di sini.

75
00:03:14,210 --> 00:03:16,560
‫Jadi, itu tidak terlalu penting, karena

76
00:03:16,560 --> 00:03:18,980
‫ini, tentu saja, berlaku untuk setiap permintaan.

77
00:03:18,980 --> 00:03:20,420
‫Jadi, mari kita kembali.

78
00:03:20,420 --> 00:03:22,760
‫Dan memang, kami mendapat salam dari

79
00:03:22,760 --> 00:03:25,400
‫middleware yang masuk ke konsol kami, oke?

80
00:03:25,400 --> 00:03:26,313
‫Sangat bagus.

81
00:03:27,240 --> 00:03:30,140
‫Dan saya ingin cepat menyentuh apa yang baru saja

82
00:03:30,140 --> 00:03:32,150
‫saya katakan sebelumnya, yaitu bahwa

83
00:03:32,150 --> 00:03:35,160
‫middleware ini di sini berlaku untuk setiap permintaan, oke?

84
00:03:35,160 --> 00:03:37,600
‫Dan itu karena kami tidak menentukan rute apa pun.

85
00:03:37,600 --> 00:03:40,850
‫Jadi, ingatlah bahwa sebelum saya mengatakan bahwa semua pengendali rute

86
00:03:40,850 --> 00:03:43,710
‫di sini sebenarnya adalah jenis middleware itu sendiri.

87
00:03:43,710 --> 00:03:45,200
‫Mereka hanyalah fungsi

88
00:03:45,200 --> 00:03:47,790
‫middleware yang hanya berlaku untuk URL tertentu.

89
00:03:47,790 --> 00:03:50,010
‫Jadi rute tertentu, oke.

90
00:03:50,010 --> 00:03:52,980
‫Tetapi fungsi middleware yang lebih sederhana yang

91
00:03:52,980 --> 00:03:54,900
‫kami definisikan di

92
00:03:54,900 --> 00:03:58,080
‫sini, mereka akan berlaku untuk setiap permintaan.

93
00:03:58,080 --> 00:04:00,070
‫Setidaknya, jika penangan rute datang

94
00:04:00,070 --> 00:04:01,820
‫sebelum middleware ini.

95
00:04:01,820 --> 00:04:04,250
‫Jadi biarkan aku benar-benar menunjukkan sesuatu.

96
00:04:04,250 --> 00:04:06,610
‫Dan saya akan memotongnya dari sini

97
00:04:06,610 --> 00:04:08,670
‫dan sekarang benar-benar meletakkannya di sini

98
00:04:08,670 --> 00:04:10,563
‫setelah pengendali rute ini.

99
00:04:12,240 --> 00:04:14,910
‫Jadi menurut Anda apa yang

100
00:04:14,910 --> 00:04:18,550
‫akan terjadi sekarang ketika saya menelepon ke rute ini?

101
00:04:18,550 --> 00:04:20,900
‫Jadi mari kita lihat apa yang terjadi.

102
00:04:20,900 --> 00:04:24,040
‫Jadi rute yang tepat ini, jadi yang baru saja saya tunjukkan, izinkan

103
00:04:24,040 --> 00:04:25,640
‫saya mengirim permintaan ke sana.

104
00:04:26,520 --> 00:04:29,420
‫Dan sekarang mari kita kembali dan sekarang kita tidak

105
00:04:29,420 --> 00:04:31,000
‫memiliki hello dari middleware.

106
00:04:31,000 --> 00:04:32,460
‫Jadi, mengapa demikian?

107
00:04:32,460 --> 00:04:34,930
‫Yah, hanya karena middleware ini, jadi

108
00:04:34,930 --> 00:04:36,580
‫pengendali rute ini di

109
00:04:36,580 --> 00:04:40,200
‫sini, muncul sebelum fungsi middleware yang kita miliki di sini.

110
00:04:40,200 --> 00:04:42,330
‫Dan pengendali rute ini, yang

111
00:04:42,330 --> 00:04:46,570
‫dalam hal ini, dapatkan semua tur, sebenarnya mengakhiri siklus respons permintaan.

112
00:04:46,570 --> 00:04:48,130
‫Jadi mari kita lihat itu.

113
00:04:48,130 --> 00:04:49,763
‫Jadi kita sudah mendapatkan semua tur.

114
00:04:51,220 --> 00:04:52,600
‫Jadi, di mana itu?

115
00:04:52,600 --> 00:04:56,100
‫Ya, jadi inilah fungsinya dan dengan mengirimkan hasil

116
00:04:56,100 --> 00:04:58,550
‫dengan res dot json,

117
00:04:58,550 --> 00:05:01,090
‫kita sebenarnya mengakhiri siklus respons permintaan.

118
00:05:01,090 --> 00:05:03,440
‫Jadi middleware berikutnya dalam tumpukan, yang

119
00:05:03,440 --> 00:05:05,430
‫dalam hal ini adalah

120
00:05:06,280 --> 00:05:09,700
‫yang ini, jadi yang khusus kami tidak akan dipanggil.

121
00:05:09,700 --> 00:05:13,300
‫Sekali lagi, karena siklusnya sudah selesai, oke.

122
00:05:13,300 --> 00:05:15,930
‫Jadi pastikan untuk memahami bahwa pesanan ini

123
00:05:15,930 --> 00:05:18,200
‫sangat penting dalam ekspres, oke.

124
00:05:18,200 --> 00:05:20,490
‫Sangat penting untuk memahami bahwa

125
00:05:20,490 --> 00:05:23,590
‫ini adalah cara kerja aplikasi ekspres, oke.

126
00:05:23,590 --> 00:05:25,760
‫Jadi, untuk mengujinya, mari kita coba

127
00:05:25,760 --> 00:05:27,730
‫melihat apa yang terjadi

128
00:05:27,730 --> 00:05:30,190
‫ketika kita melakukan permintaan ke rute ini.

129
00:05:30,190 --> 00:05:33,173
‫Jadi untuk mendapatkan tur perbarui tur atau hapus tur.

130
00:05:34,900 --> 00:05:38,090
‫Jadi mari lakukan yang ini, kirim permintaan ke

131
00:05:38,090 --> 00:05:41,150
‫sini, dan mari kembali dan sekarang kita mendapat

132
00:05:41,150 --> 00:05:42,740
‫halo dari middleware.

133
00:05:42,740 --> 00:05:45,180
‫Jadi itu sebenarnya yang kita harapkan, bukan?

134
00:05:45,180 --> 00:05:48,120
‫Jadi itu karena tentu saja, middleware ini di

135
00:05:48,120 --> 00:05:50,630
‫sini sekarang sebelum penangan rute.

136
00:05:50,630 --> 00:05:53,390
‫Dan tentu saja, ini adalah bagian

137
00:05:53,390 --> 00:05:57,050
‫dari tumpukan middleware yang dieksekusi sebelum siklus respons permintaan berakhir.

138
00:05:57,050 --> 00:05:58,673
‫Baiklah, masuk akal?

139
00:06:00,630 --> 00:06:03,250
‫Jadi, mari kita ambil kembali dan biasanya

140
00:06:03,250 --> 00:06:05,560
‫kita mendefinisikan middleware global semacam ini

141
00:06:05,560 --> 00:06:08,183
‫di sini sebelum semua penangan rute kita.

142
00:06:09,500 --> 00:06:11,830
‫Baiklah, jadi ini adalah salah satu fungsi

143
00:06:11,830 --> 00:06:15,500
‫middleware yang sangat sederhana yang baru saja kita definisikan untuk menjalankan beberapa kode.

144
00:06:15,500 --> 00:06:17,490
‫Tapi mari kita lakukan yang lain.

145
00:06:17,490 --> 00:06:18,920
‫Dan tentu saja,

146
00:06:18,920 --> 00:06:21,800
‫kita dapat memiliki fungsi middleware sebanyak yang kita suka.

147
00:06:21,800 --> 00:06:23,170
‫Dan kali ini

148
00:06:23,170 --> 00:06:25,053
‫kita sebenarnya ingin memanipulasi objek request.

149
00:06:27,040 --> 00:06:29,090
‫Jadi signature disini selalu

150
00:06:29,090 --> 00:06:31,343
‫sama, selalu request, response, dan next.

151
00:06:32,890 --> 00:06:35,370
‫Dan sekarang mari kita benar-benar memanipulasi permintaan.

152
00:06:35,370 --> 00:06:36,800
‫Yang ingin kami lakukan

153
00:06:36,800 --> 00:06:39,990
‫dalam kasus ini, adalah menambahkan waktu saat ini ke permintaan.

154
00:06:39,990 --> 00:06:42,110
‫Jadi kita cukup mendefinisikan properti

155
00:06:42,110 --> 00:06:44,963
‫pada objek permintaan yang disebut waktu permintaan.

156
00:06:47,480 --> 00:06:50,300
‫Dan kemudian atur ke tanggal

157
00:06:50,300 --> 00:06:51,210
‫baru,

158
00:06:51,210 --> 00:06:54,300
‫yang pada dasarnya diterjemahkan menjadi sekarang.

159
00:06:54,300 --> 00:06:57,230
‫Dan kemudian kita dapat menggunakan fungsi tanggal yang sangat berguna,

160
00:06:57,230 --> 00:06:59,670
‫yang dipanggil ke string ISO, yang kemudian akan

161
00:06:59,670 --> 00:07:01,520
‫mengubahnya menjadi string yang bagus dan

162
00:07:01,520 --> 00:07:03,330
‫mudah dibaca untuk kita.

163
00:07:03,330 --> 00:07:05,930
‫Jadi, mari kita berpura-pura memiliki beberapa pengendali

164
00:07:05,930 --> 00:07:07,860
‫rute yang benar-benar membutuhkan

165
00:07:07,860 --> 00:07:10,310
‫informasi tentang kapan tepatnya permintaan itu terjadi.

166
00:07:10,310 --> 00:07:12,860
‫Jadi solusi yang sangat sederhana adalah

167
00:07:12,860 --> 00:07:16,470
‫dengan menambahkan sesuatu seperti ini ke permintaan menggunakan middleware.

168
00:07:16,470 --> 00:07:17,520
‫Baiklah?

169
00:07:17,520 --> 00:07:18,960
‫Sekarang, jangan lupa,

170
00:07:18,960 --> 00:07:21,890
‫tentu saja, untuk memanggil middleware berikutnya di tumpukan, oke.

171
00:07:21,890 --> 00:07:26,830
‫Jadi sekarang, kami memiliki permintaan, waktu untuk semua permintaan.

172
00:07:26,830 --> 00:07:29,800
‫Jadi kita sekarang dapat menggunakan beberapa pengendali rute

173
00:07:29,800 --> 00:07:32,850
‫di sini, misalnya, (bergumam) agar semua tur dapat dengan

174
00:07:32,850 --> 00:07:35,163
‫mudah mencatatnya untuk kita ke konsol.

175
00:07:36,640 --> 00:07:40,583
‫Jadi konsol dot log, dan itu sebenarnya meminta waktu.

176
00:07:42,130 --> 00:07:46,170
‫Oke, atau kami bahkan dapat mengirimkan ini sebagai tanggapan juga.

177
00:07:46,170 --> 00:07:47,460
‫Biarkan saya menguji itu.

178
00:07:47,460 --> 00:07:49,590
‫Dan sebut saja yang

179
00:07:52,670 --> 00:07:56,830
‫ini diminta pada dan req dot request time.

180
00:07:56,830 --> 00:07:57,870
‫Itu dia.

181
00:07:57,870 --> 00:08:00,160
‫Jadi, ya, mari kita lanjutkan dan cari tahu yang ini.

182
00:08:00,160 --> 00:08:02,840
‫Jadi middleware kami benar, kan?

183
00:08:02,840 --> 00:08:05,870
‫Ya, jadi kita panggil berikutnya, setelah selesai, jadi mari

184
00:08:05,870 --> 00:08:07,413
‫kita uji ini sekarang.

185
00:08:08,450 --> 00:08:10,273
‫Ingat itu di dapatkan semua tur.

186
00:08:11,310 --> 00:08:14,000
‫Dan ketika kita kembali sekarang, atau ketika kita naik,

187
00:08:14,000 --> 00:08:16,420
‫yah, seharusnya itu benar-benar ada di sini.

188
00:08:16,420 --> 00:08:17,973
‫Jadi, apa yang salah di sini?

189
00:08:18,920 --> 00:08:20,060
‫Anda lihat

190
00:08:20,060 --> 00:08:22,430
‫di sini, kami sebenarnya baru saja mencatat

191
00:08:22,430 --> 00:08:27,230
‫sebuah fungsi dan ya, tentu saja, kami tidak benar-benar memanggil dua string ISO.

192
00:08:27,230 --> 00:08:31,000
‫Jadi itu adalah metode yang harus kita sebut.

193
00:08:31,000 --> 00:08:33,930
‫Jadi simpan saja, coba lagi.

194
00:08:33,930 --> 00:08:37,790
‫Dan sekarang kami telah meminta pada dan kemudian tanggal hari ini.

195
00:08:37,790 --> 00:08:38,740
‫Begitu sempurna.

196
00:08:38,740 --> 00:08:40,860
‫Itu berasal dari middleware kami.

197
00:08:40,860 --> 00:08:44,980
‫Jadi hanya karena kami menambahkan properti itu ke permintaan kami.

198
00:08:44,980 --> 00:08:46,250
‫Besar.

199
00:08:46,250 --> 00:08:49,280
‫Jadi saya harap dengan itu, Anda membuat langkah maju

200
00:08:49,280 --> 00:08:52,730
‫yang bagus untuk benar-benar memahami cara kerja aplikasi Node, cara

201
00:08:52,730 --> 00:08:53,810
‫kerja middleware,

202
00:08:53,810 --> 00:08:56,370
‫cara kerja seluruh siklus respons permintaan, karena

203
00:08:56,370 --> 00:08:58,300
‫itu benar-benar akan membuat semua perbedaan

204
00:08:58,300 --> 00:09:00,453
‫saat Anda menulis aplikasi Anda sendiri.

