﻿1
00:00:01,150 --> 00:00:03,310
‫Man: Dalam video ini, kita sekarang akan

2
00:00:03,310 --> 00:00:06,080
‫menerapkan middleware penanganan kesalahan global yang baru saja

3
00:00:06,080 --> 00:00:07,483
‫kita bicarakan sebelumnya.

4
00:00:09,020 --> 00:00:11,280
‫Jadi ingatlah bahwa tujuannya

5
00:00:11,280 --> 00:00:13,650
‫adalah untuk menulis fungsi middleware,

6
00:00:13,650 --> 00:00:17,690
‫yang akan mampu menangani kesalahan operasional seperti ini.

7
00:00:17,690 --> 00:00:22,010
‫Oke, jadi ketika pengguna menekan URL yang tidak ada, sementara kami dapat

8
00:00:22,010 --> 00:00:24,890
‫menganggap itu sebagai kesalahan operasional, dan dalam hal

9
00:00:24,890 --> 00:00:27,590
‫ini kami menanganinya dengan mengirimkan kembali respons

10
00:00:27,590 --> 00:00:29,630
‫ini di sini, bukan?

11
00:00:29,630 --> 00:00:33,320
‫Tetapi sekali lagi, tujuannya adalah untuk melakukannya di satu tempat sentral.

12
00:00:33,320 --> 00:00:37,200
‫Misalnya, kami memiliki hal serupa di sini.

13
00:00:37,200 --> 00:00:39,870
‫Jadi di semua tempat di sini kami memiliki cuplikan

14
00:00:39,870 --> 00:00:41,950
‫ini di sini, yang menangani kesalahan.

15
00:00:41,950 --> 00:00:45,270
‫Jadi kita harus menyerang blok etch di sini, dan

16
00:00:45,270 --> 00:00:47,460
‫jika ada kesalahan, maka kita

17
00:00:47,460 --> 00:00:50,083
‫menanganinya dengan mengirimkan kesalahan itu ke klien.

18
00:00:51,290 --> 00:00:53,520
‫Dan sekali lagi, pada akhirnya, kami

19
00:00:53,520 --> 00:00:56,170
‫ingin menyingkirkan semua ini dan menangani kesalahan

20
00:00:56,170 --> 00:00:57,900
‫dalam satu middleware pusat.

21
00:00:57,900 --> 00:01:00,556
‫Jadi sekarang mari kita mulai dengan

22
00:01:00,556 --> 00:01:02,800
‫benar-benar membangun fungsi middleware itu.

23
00:01:02,800 --> 00:01:05,470
‫Dan di Express, sebenarnya sangat mudah.

24
00:01:05,470 --> 00:01:07,580
‫Ingat bagaimana saya memberi tahu Anda bahwa

25
00:01:07,580 --> 00:01:09,540
‫Express sudah dilengkapi dengan penangan middleware

26
00:01:09,540 --> 00:01:10,880
‫di luar kotak.

27
00:01:10,880 --> 00:01:15,720
‫Jadi seperti biasa, kita mulai dengan menggunakan aplikasi. gunakan, oke, dan kemudian

28
00:01:15,720 --> 00:01:19,210
‫di sini kita mendefinisikan fungsi middleware kita.

29
00:01:19,210 --> 00:01:21,880
‫Jadi, untuk mendefinisikan middleware penanganan

30
00:01:21,880 --> 00:01:24,870
‫kesalahan, yang perlu kita lakukan adalah memberikan

31
00:01:24,870 --> 00:01:27,980
‫fungsi middleware empat argumen dan Express akan secara

32
00:01:27,980 --> 00:01:30,740
‫otomatis mengenalinya sebagai middleware penanganan kesalahan.

33
00:01:30,740 --> 00:01:33,653
‫Dan karena itu, panggil saja ketika ada kesalahan.

34
00:01:34,556 --> 00:01:38,220
‫Dan seperti dalam banyak kasus lainnya, fungsi

35
00:01:38,220 --> 00:01:41,740
‫middleware ini adalah fungsi error first, yang

36
00:01:41,740 --> 00:01:43,330
‫berarti argumen pertama

37
00:01:43,330 --> 00:01:44,483
‫adalah

38
00:01:45,930 --> 00:01:50,563
‫error, dan kemudian kita memiliki request, response, dan next.

39
00:01:51,975 --> 00:01:55,280
‫Jadi dengan menetapkan empat parameter, Express secara otomatis

40
00:01:55,280 --> 00:01:57,750
‫mengetahui bahwa seluruh fungsi di sini

41
00:01:57,750 --> 00:02:00,150
‫adalah middleware penanganan kesalahan.

42
00:02:00,150 --> 00:02:04,150
‫Jadi sekarang mari kita terapkan kode untuk fungsi ini di sini dan setelah

43
00:02:04,150 --> 00:02:06,400
‫itu saya akan menunjukkan kepada Anda bagaimana

44
00:02:06,400 --> 00:02:09,000
‫sebenarnya kita bisa membuat kesalahan sehingga fungsi middleware ini

45
00:02:09,000 --> 00:02:09,930
‫benar-benar tertangkap.

46
00:02:09,930 --> 00:02:13,450
‫Jadi dua langkah, pertama kita buat middleware, kemudian di

47
00:02:13,450 --> 00:02:15,130
‫langkah kedua kita

48
00:02:15,130 --> 00:02:18,700
‫justru akan membuat error sehingga fungsi ini akan ketahuan.

49
00:02:18,700 --> 00:02:20,943
‫Dan untuk saat ini, mari kita membuatnya tetap sederhana di sini.

50
00:02:20,943 --> 00:02:23,590
‫Jadi semua yang benar-benar ingin kami lakukan

51
00:02:23,590 --> 00:02:27,100
‫untuk menangani kesalahan ini adalah mengirim kembali tanggapan ke klien.

52
00:02:27,100 --> 00:02:29,893
‫Jadi res. status, tapi sekarang

53
00:02:31,170 --> 00:02:35,100
‫kita tidak begitu tahu kode statusnya yang mana, kan?

54
00:02:35,100 --> 00:02:38,420
‫Jadi misalnya, dalam hal ini adalah 404, tetapi kami memiliki

55
00:02:38,420 --> 00:02:41,650
‫beberapa kesalahan di sini, yang memiliki kode status lain.

56
00:02:41,650 --> 00:02:46,020
‫Seperti kami memiliki 400 misalnya untuk permintaan buruk, atau

57
00:02:46,020 --> 00:02:48,823
‫benar-benar semua jenis kode lainnya.

58
00:02:50,903 --> 00:02:53,142
‫Jadi kita sebenarnya ingin membaca

59
00:02:53,142 --> 00:02:56,113
‫kode status itu dari objek kesalahan, oke?

60
00:02:57,480 --> 00:02:59,650
‫Jadi ketika kita membuat kesalahan itu sedikit

61
00:02:59,650 --> 00:03:01,143
‫kemudian di langkah kedua,

62
00:03:01,143 --> 00:03:04,504
‫seperti yang saya katakan, kami akan mendefinisikan kode status ini pada kesalahan.

63
00:03:04,504 --> 00:03:08,943
‫Jadi katakanlah kode status, dan sekarang saya ingin mendefinisikan default

64
00:03:10,533 --> 00:03:11,962
‫di sini.

65
00:03:11,962 --> 00:03:14,620
‫Karena akan ada error yang bukan berasal

66
00:03:14,620 --> 00:03:17,090
‫dari kita karena akan ada error

67
00:03:17,090 --> 00:03:19,590
‫tanpa kode status, jadi error itu

68
00:03:19,590 --> 00:03:22,750
‫bukan buatan kita, tapi misalnya beberapa tempat lain

69
00:03:22,750 --> 00:03:24,240
‫di aplikasi note.

70
00:03:24,240 --> 00:03:26,640
‫Dan saya tahu itu terdengar agak membingungkan untuk saat ini,

71
00:03:26,640 --> 00:03:28,770
‫tetapi Anda akan melihat di seluruh bagian ini.

72
00:03:28,770 --> 00:03:31,790
‫Untuk saat ini, mari kita definisikan kode status

73
00:03:31,790 --> 00:03:32,623
‫default ini.

74
00:03:33,550 --> 00:03:36,959
‫Jadi kita mengatakan bahwa kesalahan. kode status

75
00:03:36,959 --> 00:03:40,446
‫sama dengan err. statuscode pada dasarnya

76
00:03:40,446 --> 00:03:45,230
‫jika didefinisikan atau kode 500, yang berarti lagi, kesalahan server

77
00:03:45,230 --> 00:03:48,140
‫internal, dan itu biasanya standar yang

78
00:03:48,140 --> 00:03:49,763
‫kami gunakan.

79
00:03:50,660 --> 00:03:54,820
‫Dan dengan cara yang sama, kita juga mendefinisikan status,

80
00:03:54,820 --> 00:03:59,820
‫jadi katakanlah error. status sama dengan kesalahan. status jika didefinisikan,

81
00:04:01,350 --> 00:04:03,713
‫dan jika tidak, itu

82
00:04:04,670 --> 00:04:05,760
‫kesalahan.

83
00:04:05,760 --> 00:04:10,120
‫Jadi errornya, ingat, adalah ketika kita memiliki kode status 500 dan

84
00:04:10,120 --> 00:04:13,033
‫jika kode statusnya 400, maka itu gagal.

85
00:04:13,926 --> 00:04:16,723
‫Jadi misalnya di sini di 404 ini, statusnya gagal.

86
00:04:18,597 --> 00:04:20,960
‫Dan sekarang di sini

87
00:04:20,960 --> 00:04:25,960
‫kita dapat menggunakannya, jadi kesalahan. statuscode, dan kemudian mengirim beberapa json, sangat mirip

88
00:04:27,100 --> 00:04:29,363
‫dengan apa yang kami lakukan sebelumnya.

89
00:04:30,320 --> 00:04:34,830
‫Jadi kita mulai dengan status dan membacanya dari kesalahan. status dan pesan

90
00:04:37,010 --> 00:04:40,473
‫akan datang dari kesalahan juga.

91
00:04:41,380 --> 00:04:44,970
‫Jadi salah. pesan dan saya akan menunjukkan kepada Anda

92
00:04:44,970 --> 00:04:48,223
‫dalam sedetik bagaimana kesalahan itu. properti pesan di sini dibuat.

93
00:04:49,750 --> 00:04:52,700
‫Baiklah, tapi untuk saat ini, ini adalah middleware penanganan kesalahan

94
00:04:52,700 --> 00:04:54,000
‫kami yang sangat sederhana.

95
00:04:55,400 --> 00:04:58,190
‫Sangat sederhana, tetapi untuk saat ini berhasil.

96
00:04:58,190 --> 00:05:00,200
‫Dan sekarang langkah kedua, di mana

97
00:05:00,200 --> 00:05:01,830
‫kita sebenarnya membuat kesalahan.

98
00:05:01,830 --> 00:05:03,680
‫Jadi mari kita lakukan itu di sini.

99
00:05:03,680 --> 00:05:06,270
‫Jadi di sini, di fungsi itu, yang menangani semua

100
00:05:06,270 --> 00:05:08,820
‫rute yang tidak ditangani, jadi izinkan saya mengomentari

101
00:05:08,820 --> 00:05:11,833
‫yang ini di sini dan sebagai gantinya kami ingin membuat kesalahan.

102
00:05:12,973 --> 00:05:16,850
‫Jadi katakanlah const err dan

103
00:05:18,080 --> 00:05:21,700
‫ini adalah kesalahan baru.

104
00:05:21,700 --> 00:05:24,840
‫Jadi pada dasarnya kami menggunakan konstruktor kesalahan bawaan

105
00:05:24,840 --> 00:05:26,600
‫untuk membuat kesalahan.

106
00:05:26,600 --> 00:05:29,320
‫Dan sekarang kita bisa memasukkan string dan string

107
00:05:29,320 --> 00:05:31,900
‫itu akan menjadi properti pesan kesalahan.

108
00:05:31,900 --> 00:05:35,163
‫Jadi apa yang baru saja kita bicarakan di sini.

109
00:05:37,350 --> 00:05:40,113
‫Jadi pesan itu seharusnya pesan ini.

110
00:05:42,920 --> 00:05:43,753
‫Baiklah?

111
00:05:45,600 --> 00:05:49,600
‫Dan kemudian seharusnya dikatakan err. status yang

112
00:05:51,680 --> 00:05:52,693
‫gagal,

113
00:05:55,830 --> 00:06:00,450
‫dan kemudian err. statusCode sama dengan 404.

114
00:06:00,450 --> 00:06:03,610
‫Jadi itulah yang saya sebutkan sebelumnya bahwa kita dapat

115
00:06:03,610 --> 00:06:06,770
‫menentukan kode status dan status pada objek kesalahan.

116
00:06:06,770 --> 00:06:09,010
‫Dan itulah tepatnya yang kami lakukan di sini.

117
00:06:09,010 --> 00:06:10,950
‫Kami membuat kesalahan dan kami

118
00:06:10,950 --> 00:06:14,220
‫kemudian menentukan status dan properti kode status di dalamnya

119
00:06:14,220 --> 00:06:15,930
‫sehingga middleware penanganan kesalahan

120
00:06:15,930 --> 00:06:18,150
‫kami kemudian dapat menggunakannya di langkah berikutnya.

121
00:06:18,150 --> 00:06:20,840
‫Tapi sekarang, bagaimana kita benar-benar membaca langkah selanjutnya?

122
00:06:20,840 --> 00:06:23,390
‫Jadi middleware berikutnya.

123
00:06:23,390 --> 00:06:26,650
‫Yah, seperti biasa, kami menggunakan next.

124
00:06:26,650 --> 00:06:29,430
‫Tapi kali ini kita menggunakan next dengan cara khusus.

125
00:06:29,430 --> 00:06:32,100
‫Karena sekarang kita harus benar-benar meneruskan kesalahan

126
00:06:32,100 --> 00:06:35,190
‫itu ke yang berikutnya, jadi jika fungsi berikutnya menerima

127
00:06:35,190 --> 00:06:37,460
‫argumen, apa pun itu, Express akan

128
00:06:37,460 --> 00:06:40,680
‫secara otomatis mengetahui bahwa ada kesalahan sehingga akan menganggap

129
00:06:40,680 --> 00:06:43,620
‫bahwa apa pun yang kita masukkan berikutnya akan

130
00:06:43,620 --> 00:06:44,950
‫menjadi kesalahan.

131
00:06:44,950 --> 00:06:48,300
‫Dan itu berlaku untuk setiap fungsi berikutnya di setiap middleware

132
00:06:48,300 --> 00:06:50,803
‫di mana saja di aplikasi kita.

133
00:06:51,950 --> 00:06:54,800
‫Jadi sekali lagi, setiap kali kita meneruskan sesuatu ke

134
00:06:54,800 --> 00:06:57,250
‫berikutnya, itu akan menganggap bahwa itu adalah kesalahan,

135
00:06:57,250 --> 00:06:59,670
‫dan kemudian akan melewati semua middleware lain

136
00:06:59,670 --> 00:07:02,250
‫di tumpukan middleware dan mengirim kesalahan yang kita berikan

137
00:07:02,250 --> 00:07:04,680
‫ke middleware penanganan kesalahan global kita, yang kemudian

138
00:07:04,680 --> 00:07:06,680
‫akan , tentu saja, dieksekusi.

139
00:07:08,030 --> 00:07:10,090
‫Jadi sekarang mari kita lewati

140
00:07:10,090 --> 00:07:12,350
‫kesalahan yang akan dilewati lagi, semua

141
00:07:12,350 --> 00:07:15,393
‫middlewares lain di tumpukan dan langsung ke yang ini.

142
00:07:16,850 --> 00:07:18,430
‫Nah dalam hal ini,

143
00:07:18,430 --> 00:07:21,210
‫sebenarnya tidak ada middleware lain di tengah, oke?

144
00:07:21,210 --> 00:07:23,060
‫Jadi ini benar-benar hanya yang berikutnya

145
00:07:23,060 --> 00:07:25,950
‫di sini, tetapi jika kita menggunakan next dan meneruskan kesalahan di tempat

146
00:07:25,950 --> 00:07:28,603
‫lain, maka tentu saja itu akan bekerja dengan cara yang sama.

147
00:07:29,720 --> 00:07:31,940
‫Jadi sekarang mari kita uji semua

148
00:07:31,940 --> 00:07:35,077
‫ini hanya dengan mencoba mengakses rute yang tidak ditentukan.

149
00:07:35,077 --> 00:07:38,460
‫Dan kemudian akan memicu semua kode ini di sini,

150
00:07:38,460 --> 00:07:41,190
‫lompat ke middleware penanganan kesalahan, dan kemudian

151
00:07:41,190 --> 00:07:43,700
‫kirim kembali respons berdasarkan semua logika ini

152
00:07:43,700 --> 00:07:44,773
‫di sini.

153
00:07:47,420 --> 00:07:52,130
‫Jadi, di sini kita masih memiliki rute yang salah atau tidak ada

154
00:07:52,130 --> 00:07:55,220
‫dan mari kita mulai dengan memanggil yang

155
00:07:55,220 --> 00:07:57,023
‫ini, yang seharusnya masih berfungsi,

156
00:07:59,850 --> 00:08:01,650
‫oke jadi hanya untuk

157
00:08:01,650 --> 00:08:05,050
‫mengonfirmasi bahwa semuanya berfungsi dengan baik dan berhasil, dan

158
00:08:05,050 --> 00:08:06,810
‫sekarang yang ini.

159
00:08:06,810 --> 00:08:11,250
‫Dan memang kami tidak dapat menemukan tur slash API di server

160
00:08:11,250 --> 00:08:13,810
‫ini, sehingga middleware penanganan kesalahan global

161
00:08:13,810 --> 00:08:15,560
‫kami benar-benar melakukan tugasnya.

162
00:08:15,560 --> 00:08:19,560
‫Sempurna, itulah langkah pertama untuk benar-benar menerapkan mekanisme

163
00:08:19,560 --> 00:08:22,370
‫penanganan kesalahan yang jauh lebih baik

164
00:08:22,370 --> 00:08:24,200
‫dalam aplikasi kita.

165
00:08:24,200 --> 00:08:26,830
‫Jadi sekarang kita bisa melanjutkan dan mencoba menerapkan hal-hal

166
00:08:26,830 --> 00:08:29,460
‫semacam ini di sini, di mana-mana di semua

167
00:08:29,460 --> 00:08:30,310
‫penangan kita.

168
00:08:30,310 --> 00:08:34,160
‫Misalnya, di sini di semua fungsi yang kita miliki

169
00:08:34,160 --> 00:08:35,060
‫di sini.

170
00:08:35,060 --> 00:08:37,410
‫Jadi mengganti semua yang kita miliki di sini

171
00:08:37,410 --> 00:08:38,850
‫dengan kesalahan semacam ini.

172
00:08:38,850 --> 00:08:41,460
‫Tapi yang ingin saya lakukan sekarang adalah benar-benar membuat

173
00:08:41,460 --> 00:08:42,920
‫kelas kesalahan kita sendiri.

174
00:08:42,920 --> 00:08:46,330
‫Sehingga kita tidak perlu menulis semua kode ini di sini dan

175
00:08:46,330 --> 00:08:49,280
‫sebagai gantinya memiliki kelas yang lebih seperti streamline dari diri

176
00:08:49,280 --> 00:08:50,113
‫kita sendiri.

177
00:08:50,113 --> 00:08:53,350
‫Jadi itu adalah praktik umum, jadi mari kita lakukan itu di

178
00:08:53,350 --> 00:08:54,283
‫video berikutnya.

