﻿1
00:00:00,890 --> 00:00:02,400
‫Dosen: Halo.

2
00:00:02,400 --> 00:00:06,663
‫Sekarang mari kita membuat beberapa halaman kesalahan yang bagus untuk pengguna kita.

3
00:00:08,210 --> 00:00:11,723
‫Dan untuk memulai, mari kita membuat kesalahan terlebih dahulu.

4
00:00:13,100 --> 00:00:15,033
‫Jadi mari kita buka tur ini di sini.

5
00:00:16,350 --> 00:00:18,293
‫Tidak, saya tidak ingin menerjemahkan.

6
00:00:19,440 --> 00:00:23,640
‫Dan sekarang mari kita tambahkan sesuatu ke log ini di sini,

7
00:00:23,640 --> 00:00:26,563
‫dan kemudian, tentu saja, tidak akan ditemukan.

8
00:00:27,800 --> 00:00:31,140
‫Benar, dan inilah yang terlihat seperti kesalahan pada

9
00:00:31,140 --> 00:00:32,330
‫saat ini.

10
00:00:32,330 --> 00:00:34,510
‫Jadi sederhananya, semua JSON

11
00:00:34,510 --> 00:00:37,440
‫ini di sini, sama seperti di Postman.

12
00:00:37,440 --> 00:00:40,110
‫Jadi kita pernah melihat kesalahan seperti ini di sini sebelumnya.

13
00:00:40,110 --> 00:00:42,740
‫Jadi, sekarang mari kita perbaiki itu.

14
00:00:42,740 --> 00:00:46,230
‫Tapi pertama-tama kita benar-benar perlu memperbaiki kesalahan khusus ini.

15
00:00:46,230 --> 00:00:48,150
‫Jadi sekarang kita

16
00:00:48,150 --> 00:00:53,150
‫mendapatkan, tidak dapat membaca nama properti null di getTour.

17
00:00:53,530 --> 00:00:54,600
‫Oke.

18
00:00:54,600 --> 00:00:59,530
‫Dan itu di sini di pengontrol tampilan kami, getTour.

19
00:00:59,530 --> 00:01:02,120
‫Jadi di sini, kami tidak

20
00:01:02,120 --> 00:01:05,260
‫memiliki penanganan kesalahan jika tidak ada tur, kan?

21
00:01:05,260 --> 00:01:08,060
‫Jadi kami memilikinya di semua penangan rute kami yang lain,

22
00:01:08,060 --> 00:01:10,470
‫tetapi dalam hal ini, kami belum memilikinya.

23
00:01:10,470 --> 00:01:11,513
‫Jadi mari kita tambahkan itu.

24
00:01:12,570 --> 00:01:17,570
‫Jadi jika tidak ada tur, maka kembali dan

25
00:01:18,910 --> 00:01:23,910
‫pergi ke middleware berikutnya dengan kesalahan aplikasi baru.

26
00:01:25,020 --> 00:01:28,090
‫Dan mungkin itu belum ada di sini.

27
00:01:28,090 --> 00:01:29,483
‫Dan tidak, memang tidak.

28
00:01:31,290 --> 00:01:32,123
‫Jadi konst.

29
00:01:34,904 --> 00:01:36,363
‫AppError sama.

30
00:01:44,880 --> 00:01:46,220
‫Baiklah.

31
00:01:46,220 --> 00:01:48,280
‫Kesalahan di sini tentu saja.

32
00:01:48,280 --> 00:01:49,480
‫Dan kemudian katakanlah

33
00:01:53,720 --> 00:01:55,633
‫tidak ada tur dengan nama itu.

34
00:01:57,420 --> 00:02:01,090
‫Dan kemudian 404 untuk tidak ditemukan.

35
00:02:01,090 --> 00:02:02,400
‫Oke?

36
00:02:02,400 --> 00:02:04,300
‫Jadi mari kita coba lagi.

37
00:02:04,300 --> 00:02:07,690
‫Dan sekarang kita harus mendapatkan kesalahan yang jauh lebih baik.

38
00:02:07,690 --> 00:02:09,490
‫Dan memang, kita mendapatkan satu.

39
00:02:09,490 --> 00:02:11,135
‫Jadi 404.

40
00:02:11,135 --> 00:02:14,800
‫Dan perlu diingat bahwa yang ini sekarang adalah kesalahan operasional.

41
00:02:14,800 --> 00:02:18,570
‫Jadi kesalahan yang kita tahu bahwa kita pada dasarnya menciptakan diri kita sendiri.

42
00:02:18,570 --> 00:02:21,910
‫Dan seperti sebelumnya, itu akan menjadi penting untuk

43
00:02:21,910 --> 00:02:23,870
‫strategi penanganan kesalahan kami.

44
00:02:23,870 --> 00:02:27,240
‫Jadi, mari kita bicara tentang itu.

45
00:02:27,240 --> 00:02:30,010
‫Dan jadi di sini kita sudah selesai.

46
00:02:30,010 --> 00:02:32,283
‫Dan sekarang di pengontrol kesalahan

47
00:02:33,500 --> 00:02:37,130
‫kami, kami memiliki, ingat, dua fungsi yang mengirim

48
00:02:37,130 --> 00:02:39,070
‫kesalahan kembali ke klien.

49
00:02:39,070 --> 00:02:41,280
‫Jadi kami memiliki yang ini di sini untuk

50
00:02:41,280 --> 00:02:43,370
‫pengembangan dan yang ini untuk produksi.

51
00:02:43,370 --> 00:02:45,650
‫Kemudian dalam produksi, kami membedakan

52
00:02:45,650 --> 00:02:49,730
‫antara kesalahan operasional dan kesalahan lain yang tidak diketahui.

53
00:02:49,730 --> 00:02:50,563
‫Benar?

54
00:02:50,563 --> 00:02:53,190
‫Dan itulah sebenarnya yang baru saja kita bicarakan sebelumnya.

55
00:02:53,190 --> 00:02:54,690
‫Jadi untuk kesalahan yang kami

56
00:02:54,690 --> 00:02:57,470
‫ketahui, kami mengirim kembali pesan kesalahan yang sebenarnya karena kami

57
00:02:57,470 --> 00:02:59,780
‫dapat yakin bahwa itu tidak akan menjadi kesalahan

58
00:02:59,780 --> 00:03:01,130
‫yang tampak aneh

59
00:03:01,130 --> 00:03:03,520
‫yang datang dari suatu tempat dari ekspres atau

60
00:03:03,520 --> 00:03:04,910
‫catatan atau sesuatu seperti itu.

61
00:03:04,910 --> 00:03:08,180
‫Sementara, di satu sisi, ketika itu adalah kesalahan yang tidak

62
00:03:08,180 --> 00:03:11,410
‫diketahui, ya, kami tidak ingin membocorkan detail kesalahan.

63
00:03:11,410 --> 00:03:13,880
‫Jadi sekarang dalam kasus ini, dengan situs web

64
00:03:13,880 --> 00:03:16,433
‫yang dirender, kami sebenarnya akan menggunakan strategi yang sama.

65
00:03:17,460 --> 00:03:18,950
‫Sekarang, yang akan

66
00:03:18,950 --> 00:03:21,960
‫saya lakukan hanyalah menambahkan rendering halaman kesalahan

67
00:03:21,960 --> 00:03:23,900
‫ke masing-masing fungsi ini.

68
00:03:23,900 --> 00:03:26,450
‫Dan pada dasarnya, yang akan saya

69
00:03:26,450 --> 00:03:29,750
‫lakukan adalah menguji apakah URL dimulai dengan slash API.

70
00:03:29,750 --> 00:03:33,930
‫Jadi dalam hal ini, kami mengirimkan kesalahan semacam ini, kan.

71
00:03:33,930 --> 00:03:38,500
‫Tetapi jika URL tidak dimulai dengan API, baik dalam hal ini,

72
00:03:38,500 --> 00:03:41,340
‫itu berarti kita ingin membuat halaman kesalahan

73
00:03:41,340 --> 00:03:44,030
‫sebagai situs web yang dirender, oke?

74
00:03:44,030 --> 00:03:46,823
‫Jadi seperti yang telah kita lakukan di bagian ini.

75
00:03:47,920 --> 00:03:50,520
‫Bagaimanapun, sekarang mari kita terapkan itu.

76
00:03:50,520 --> 00:03:55,520
‫Jadi, kita dapat menggunakan URL asli titik permintaan.

77
00:03:55,570 --> 00:03:58,133
‫Dan mungkin kita pernah menggunakan itu sebelumnya.

78
00:04:00,000 --> 00:04:00,840
‫Baiklah?

79
00:04:00,840 --> 00:04:04,690
‫Jadi URL asli pada dasarnya adalah seluruh URL tetapi

80
00:04:04,690 --> 00:04:06,180
‫tidak dengan host.

81
00:04:06,180 --> 00:04:08,990
‫Jadi kelihatannya, persis seperti rutenya.

82
00:04:08,990 --> 00:04:12,050
‫Dan sekali lagi, ketika kita menekan

83
00:04:12,050 --> 00:04:15,640
‫URL kita, maka rute itu dimulai dengan slash API.

84
00:04:15,640 --> 00:04:17,440
‫Dan sekarang kita bisa mengujinya.

85
00:04:17,440 --> 00:04:20,710
‫Jadi kita bisa menggunakan fungsi JavaScript yang disebut startWith.

86
00:04:24,310 --> 00:04:26,873
‫Jadi fungsi yang tersedia untuk string.

87
00:04:27,860 --> 00:04:30,973
‫Dan kemudian uji apakah itu dimulai dengan slash API.

88
00:04:32,530 --> 00:04:33,363
‫Benar?

89
00:04:33,363 --> 00:04:36,853
‫Dan jika ya, maka inilah yang ingin kami lakukan.

90
00:04:38,630 --> 00:04:41,163
‫Jadi cukup kirimkan kesalahan sebagai JSON.

91
00:04:42,570 --> 00:04:46,943
‫Tetapi jika tidak, ya, maka kami sebenarnya ingin membuat kesalahan.

92
00:04:49,320 --> 00:04:52,103
‫Jadi masih res. status.

93
00:04:54,530 --> 00:04:56,177
‫Dan untuk statusCode juga.

94
00:04:56,177 --> 00:04:59,483
‫Tapi di sini sebenarnya di-render.

95
00:05:00,430 --> 00:05:02,480
‫Kemudian kita mendapatkan nama template, dan

96
00:05:02,480 --> 00:05:05,290
‫kita akan membuat template ini dalam sedetik, tapi

97
00:05:05,290 --> 00:05:07,263
‫itu akan disebut error.

98
00:05:08,230 --> 00:05:10,810
‫Dan kemudian data yang ingin kami kirimkan ke

99
00:05:10,810 --> 00:05:12,970
‫sana untuk saat ini hanyalah judulnya.

100
00:05:12,970 --> 00:05:14,430
‫Dan saya akan menambahkan

101
00:05:14,430 --> 00:05:16,223
‫beberapa hal lagi setelah template benar-benar selesai.

102
00:05:18,350 --> 00:05:22,900
‫Jadi ada yang tidak beres akan menjadi judul

103
00:05:22,900 --> 00:05:25,323
‫halaman kesalahan ini.

104
00:05:26,490 --> 00:05:27,750
‫Baiklah?

105
00:05:27,750 --> 00:05:29,570
‫Oh, sebenarnya kami tidak memiliki

106
00:05:29,570 --> 00:05:31,630
‫akses ke variabel permintaan di sini.

107
00:05:31,630 --> 00:05:33,480
‫Dan fungsinya.

108
00:05:33,480 --> 00:05:35,173
‫Jadi mari kita tambahkan itu.

109
00:05:36,790 --> 00:05:38,160
‫Permintaan di sini.

110
00:05:38,160 --> 00:05:40,270
‫Dan kita juga akan membutuhkannya di sini.

111
00:05:40,270 --> 00:05:41,103
‫Yang ini.

112
00:05:42,790 --> 00:05:45,010
‫Jadi mari kita tambahkan itu di sini juga.

113
00:05:45,010 --> 00:05:47,193
‫Jadi di sini.

114
00:05:53,723 --> 00:05:54,853
‫Oke.

115
00:05:55,690 --> 00:05:59,180
‫Jadi, sekarang kita sebenarnya perlu membuat halaman ini, atau

116
00:05:59,180 --> 00:06:01,400
‫template ini, yang disebut error.

117
00:06:01,400 --> 00:06:04,683
‫Dan sekali lagi, saya sudah memiliki template sederhana untuk itu.

118
00:06:06,110 --> 00:06:11,030
‫Jadi ada di dev-data, templates, dan errorTemplate.

119
00:06:12,830 --> 00:06:14,110
‫Oke?

120
00:06:14,110 --> 00:06:15,513
‫Jadi mari kita salin ini.

121
00:06:17,370 --> 00:06:19,493
‫Dan kemudian buat tampilan untuk itu.

122
00:06:21,190 --> 00:06:22,253
‫kesalahan. pesek

123
00:06:24,010 --> 00:06:24,843
‫Oke.

124
00:06:24,843 --> 00:06:28,080
‫Jadi di sini kita memiliki h2 sederhana yang mengatakan, uh

125
00:06:28,080 --> 00:06:29,800
‫oh, ada yang tidak beres.

126
00:06:29,800 --> 00:06:32,540
‫Kemudian (tertawa) beberapa emoji lucu di sana.

127
00:06:32,540 --> 00:06:34,100
‫Mereka tidak benar-benar menyenangkan.

128
00:06:34,100 --> 00:06:38,400
‫Dan kemudian di sini kami ingin juga dapat menyampaikan pesan.

129
00:06:38,400 --> 00:06:39,750
‫Baiklah?

130
00:06:39,750 --> 00:06:44,750
‫Jadi mari kita tambahkan ini sama dengan msg, hanya singkatan untuk pesan.

131
00:06:46,320 --> 00:06:47,530
‫Baiklah?

132
00:06:47,530 --> 00:06:48,963
‫Dan itu sebenarnya.

133
00:06:49,940 --> 00:06:54,940
‫Jadi mari kita tutup itu dan mari kita sampaikan pesan itu.

134
00:06:55,810 --> 00:06:58,640
‫Jadi msg kemudian diatur.

135
00:06:58,640 --> 00:07:02,403
‫Dan mari kita benar-benar mengaturnya ke pesan titik kesalahan.

136
00:07:03,700 --> 00:07:04,533
‫Oke?

137
00:07:04,533 --> 00:07:07,260
‫Dan kami melakukannya di sini karena kami sedang dalam pengembangan.

138
00:07:07,260 --> 00:07:08,423
‫Jadi ingatlah itu.

139
00:07:09,760 --> 00:07:11,460
‫Mari kita juga menambahkan beberapa komentar di sini.

140
00:07:13,402 --> 00:07:14,235
‫API.

141
00:07:18,360 --> 00:07:19,593
‫Mari kita taruh di sini.

142
00:07:24,740 --> 00:07:26,570
‫Situs web yang dirender.

143
00:07:26,570 --> 00:07:29,890
‫Jadi kami melakukannya seperti ini, dengan pesan kesalahan,

144
00:07:29,890 --> 00:07:31,530
‫sekali lagi karena

145
00:07:31,530 --> 00:07:34,970
‫dalam pengembangan, tidak masalah jika kami membocorkan semua detail

146
00:07:34,970 --> 00:07:36,660
‫kesalahan ke halaman kami, bukan?

147
00:07:36,660 --> 00:07:39,920
‫Karena tidak ada yang benar-benar akan melihatnya karena, ya, kami

148
00:07:39,920 --> 00:07:41,310
‫sedang dalam pengembangan.

149
00:07:41,310 --> 00:07:44,323
‫Jadi itu harus bekerja sekarang.

150
00:07:45,330 --> 00:07:48,793
‫Jadi yang perlu kita lakukan sekarang adalah memuat ulang halaman ini.

151
00:07:51,950 --> 00:07:54,030
‫Tapi sekarang ada yang salah di sini.

152
00:07:54,030 --> 00:07:57,470
‫Jadi dikatakan tidak mengirim data apa pun.

153
00:07:57,470 --> 00:07:58,633
‫Jadi mari kita kembali ke sini.

154
00:07:59,470 --> 00:08:01,713
‫Nah sebagai masalah pertama yang saya

155
00:08:02,650 --> 00:08:06,620
‫lihat di sini, bahwa saya harus memiliki kode status dan bukan hanya status.

156
00:08:06,620 --> 00:08:08,870
‫Itu saja untuk memeriksa apakah ada kesalahan di sini.

157
00:08:08,870 --> 00:08:09,910
‫Oh ya.

158
00:08:09,910 --> 00:08:11,413
‫Sebenarnya ada kesalahan.

159
00:08:12,770 --> 00:08:16,203
‫Jadi, itu sebenarnya adalah kode status yang tidak valid.

160
00:08:17,770 --> 00:08:19,113
‫Jadi di sini harus kode.

161
00:08:20,170 --> 00:08:21,723
‫Mari kita simpan lagi.

162
00:08:23,170 --> 00:08:24,590
‫Muat ulang.

163
00:08:24,590 --> 00:08:28,000
‫Dan sekarang kita mendapatkan beberapa halaman kesalahan di sini.

164
00:08:28,000 --> 00:08:29,830
‫Yah, itu tidak benar-benar diformat.

165
00:08:29,830 --> 00:08:32,830
‫Tapi tetap saja, ia memiliki judul dan yang

166
00:08:32,830 --> 00:08:36,180
‫lebih penting, ia memiliki pesan yang baru saja kita sampaikan.

167
00:08:36,180 --> 00:08:38,600
‫Jadi tidak ada tur dengan nama itu.

168
00:08:38,600 --> 00:08:43,600
‫Dan itu datang persis dari pengontrol tampilan kami.

169
00:08:43,760 --> 00:08:45,340
‫Jadi langsung dari sini.

170
00:08:45,340 --> 00:08:48,720
‫Jadi ingat logika di mana kita membuat kesalahan di sini

171
00:08:48,720 --> 00:08:50,920
‫yang kemudian diturunkan ke kesalahan global

172
00:08:50,920 --> 00:08:52,393
‫dan middleware Lint kita.

173
00:08:53,340 --> 00:08:54,173
‫Benar?

174
00:08:54,173 --> 00:08:56,760
‫Dan itulah yang akan mengambil

175
00:08:56,760 --> 00:08:59,700
‫kesalahan ini dan mengirimkannya ke klien.

176
00:08:59,700 --> 00:09:02,300
‫Sekarang dalam kasus kami, kami mendapatkan

177
00:09:02,300 --> 00:09:05,760
‫kesalahan ini karena di sini di template kami, kami

178
00:09:05,760 --> 00:09:07,770
‫masih lupa melakukan sesuatu.

179
00:09:07,770 --> 00:09:11,660
‫Yang hanya untuk memperluas, tentu saja, template utama kami.

180
00:09:11,660 --> 00:09:12,810
‫Benar?

181
00:09:12,810 --> 00:09:17,810
‫Jadi kita perlu mengatakan memperluas ke template dasar.

182
00:09:19,690 --> 00:09:22,323
‫Dan seperti biasa, buat blok itu di sini.

183
00:09:23,300 --> 00:09:26,040
‫Jadi blokir konten.

184
00:09:26,040 --> 00:09:29,200
‫Dan kemudian semua ini harus ada di sana.

185
00:09:29,200 --> 00:09:31,080
‫Jadi pada dasarnya di sini kita

186
00:09:31,080 --> 00:09:35,070
‫melakukan hal yang sama persis seperti yang kita lakukan di semua template lainnya.

187
00:09:35,070 --> 00:09:37,430
‫Jadi pada dasarnya menyuntikkan konten ini

188
00:09:37,430 --> 00:09:40,693
‫di sini ke dalam konten blog di template dasar.

189
00:09:42,370 --> 00:09:47,370
‫Jadi jika kita memuat ulang sekarang, maka akhirnya terlihat seperti yang dimaksudkan.

190
00:09:48,090 --> 00:09:48,923
‫Baiklah?

191
00:09:49,870 --> 00:09:53,670
‫Dan sekarang, jika kita benar-benar memiliki beberapa kesalahan dalam kode kita,

192
00:09:53,670 --> 00:09:56,290
‫dan sekali lagi mari kita katakan

193
00:09:56,290 --> 00:09:59,210
‫bahwa kita tidak memiliki penanganan kesalahan ini di

194
00:09:59,210 --> 00:10:02,713
‫sini, maka tentu saja seluruh kesalahan bocor ke klien.

195
00:10:06,520 --> 00:10:09,410
‫Jadi tidak bisa membaca nama properti null.

196
00:10:09,410 --> 00:10:12,140
‫Dan tentunya kita tidak ingin pengunjung website

197
00:10:12,140 --> 00:10:14,630
‫kita mengalami error seperti ini bukan?

198
00:10:14,630 --> 00:10:17,040
‫Tidak ada yang akan benar-benar mengerti apa artinya itu.

199
00:10:17,040 --> 00:10:20,520
‫Dan dalam penangan kesalahan produksi kita, sekarang

200
00:10:20,520 --> 00:10:22,570
‫mari kita selesaikan itu.

201
00:10:22,570 --> 00:10:25,300
‫Jadi di sini di pengontrol kesalahan kita, sekarang

202
00:10:25,300 --> 00:10:28,770
‫mari kita terapkan logika yang sama yang kita miliki di sini.

203
00:10:28,770 --> 00:10:32,840
‫Jadi pengujian apakah kita sedang menangani API atau tidak.

204
00:10:32,840 --> 00:10:35,370
‫Dan tentu saja ada cara yang lebih elegan

205
00:10:35,370 --> 00:10:36,380
‫untuk melakukan ini.

206
00:10:36,380 --> 00:10:38,820
‫Misalnya, Anda dapat memiliki satu middleware

207
00:10:38,820 --> 00:10:41,450
‫penanganan kesalahan yang sepenuhnya terpisah hanya untuk API,

208
00:10:41,450 --> 00:10:44,020
‫dan satu untuk situs web yang dirender, bukan?

209
00:10:44,020 --> 00:10:47,763
‫Tapi sekali lagi, saya hanya ingin membuatnya tetap sederhana di sini.

210
00:10:49,160 --> 00:10:49,993
‫Oke?

211
00:10:49,993 --> 00:10:52,283
‫Jadi dalam hal ini, itulah tujuan utama saya.

212
00:10:53,570 --> 00:10:54,600
‫Baiklah.

213
00:10:54,600 --> 00:10:56,750
‫Mari kita pilih semua ini.

214
00:10:56,750 --> 00:10:57,950
‫Oh, apa yang terjadi di sana?

215
00:11:04,880 --> 00:11:05,783
‫Ah, ini dia.

216
00:11:07,628 --> 00:11:08,461
‫Oke.

217
00:11:08,461 --> 00:11:09,773
‫Jadi itu untuk API.

218
00:11:12,490 --> 00:11:15,140
‫Dan sekarang kita benar-benar akan memiliki sesuatu yang sangat mirip.

219
00:11:25,280 --> 00:11:27,883
‫Jadi yang ini, sekali lagi, untuk situs web yang dirender.

220
00:11:30,950 --> 00:11:35,950
‫Sebut saja B di sini dan A untuk yang ini.

221
00:11:36,380 --> 00:11:38,790
‫Jadi hanya untuk memisahkannya sedikit lebih baik.

222
00:11:38,790 --> 00:11:40,873
‫Jadi kita punya dan kemudian B di sini.

223
00:11:42,600 --> 00:11:45,513
‫Bagaimanapun, ini akan terlihat sedikit mirip dengan yang ini.

224
00:11:46,700 --> 00:11:51,433
‫Jadi jika kita memiliki kesalahan operasional, maka pada dasarnya halaman kesalahan

225
00:11:52,940 --> 00:11:54,470
‫akan terlihat seperti

226
00:11:54,470 --> 00:11:57,470
‫yang kita miliki di sini sebelumnya.

227
00:11:57,470 --> 00:12:01,640
‫Tetapi jika itu adalah kesalahan pemrograman atau tidak

228
00:12:01,640 --> 00:12:05,950
‫diketahui, maka kami tidak menginginkan pesan yang lengkap, tetapi

229
00:12:05,950 --> 00:12:08,640
‫hanya pesan yang sangat umum.

230
00:12:08,640 --> 00:12:13,640
‫Jadi sesuatu seperti silakan coba lagi nanti.

231
00:12:14,490 --> 00:12:15,660
‫Baiklah?

232
00:12:15,660 --> 00:12:18,770
‫Sekarang mari kita lihat kesalahan seperti apa yang kita dapatkan di sini.

233
00:12:18,770 --> 00:12:21,350
‫Dan ternyata, kita mendapatkan sesuatu yang disebut

234
00:12:21,350 --> 00:12:23,380
‫pernyataan jika kesepian di sini.

235
00:12:23,380 --> 00:12:24,213
‫Benar.

236
00:12:24,213 --> 00:12:25,900
‫Jadi ya, Lint tidak

237
00:12:25,900 --> 00:12:29,000
‫benar-benar ingin kita hanya memiliki if di dalam blok else.

238
00:12:29,000 --> 00:12:31,580
‫Dan saya setuju bahwa

239
00:12:31,580 --> 00:12:34,280
‫ini bukan praktik pengkodean yang bagus.

240
00:12:34,280 --> 00:12:36,280
‫Dan sebenarnya, mari kita perbaiki itu dengan

241
00:12:37,500 --> 00:12:39,483
‫menyingkirkan hal lain ini di sini.

242
00:12:41,600 --> 00:12:42,740
‫Berikan simpanan.

243
00:12:42,740 --> 00:12:44,540
‫Dan kemudian kesalahan itu hilang.

244
00:12:44,540 --> 00:12:47,530
‫Tetapi sekarang kita perlu memastikan bahwa ini

245
00:12:47,530 --> 00:12:50,230
‫benar-benar mengakhiri siklus respons permintaan.

246
00:12:50,230 --> 00:12:54,843
‫Jadi kita harus kembali ke sini dan ke sini juga.

247
00:12:56,240 --> 00:12:57,580
‫Baiklah.

248
00:12:57,580 --> 00:13:02,150
‫Sekarang, kesalahan ESLint lain, tidak perlu lagi setelah pengembalian.

249
00:13:02,150 --> 00:13:04,090
‫Dan memang, itu benar juga.

250
00:13:04,090 --> 00:13:05,760
‫Dan saya sebenarnya telah mengikuti

251
00:13:05,760 --> 00:13:08,330
‫aturan ini selama kursus karena saya sendiri menyukainya

252
00:13:08,330 --> 00:13:09,453
‫sebagai praktik pengkodean.

253
00:13:10,360 --> 00:13:13,723
‫Jadi, ya, mari kita singkirkan hal lain di sini.

254
00:13:15,000 --> 00:13:18,080
‫Saya benar-benar percaya, dan saya sudah lama mempercayainya,

255
00:13:18,080 --> 00:13:22,050
‫bahwa itu terlihat jauh lebih bagus tanpa pernyataan if else ini,

256
00:13:22,050 --> 00:13:25,660
‫tetapi hanya dengan if, seperti ini di sini, dan

257
00:13:25,660 --> 00:13:28,253
‫kemudian sertakan else di luar itu.

258
00:13:29,240 --> 00:13:31,300
‫Oke, itulah yang kita miliki di sini sekarang.

259
00:13:31,300 --> 00:13:33,373
‫Mari kita juga menempatkan A dan B di sini.

260
00:13:34,240 --> 00:13:35,073
‫B.

261
00:13:36,020 --> 00:13:38,613
‫Dan sebenarnya, mari kita lakukan hal yang sama persis di sini.

262
00:13:39,930 --> 00:13:41,033
‫Jadi kembali.

263
00:13:44,820 --> 00:13:46,513
‫Kembalikan yang ini juga.

264
00:13:52,160 --> 00:13:53,653
‫Lalu di sini, A dan B juga.

265
00:13:57,150 --> 00:14:00,540
‫Jadi, itu sebenarnya terlihat lebih bersih bagi saya.

266
00:14:00,540 --> 00:14:02,450
‫Sekarang kita memiliki A di sini dan A

267
00:14:02,450 --> 00:14:04,733
‫di sini lagi, tetapi, yah, tidak apa-apa untuk saat ini.

268
00:14:05,570 --> 00:14:06,403
‫Baiklah.

269
00:14:07,320 --> 00:14:08,993
‫Jadi kembali ke sini.

270
00:14:11,260 --> 00:14:12,190
‫Kembali ke sini.

271
00:14:12,190 --> 00:14:15,863
‫Dan sebelum ia berteriak padaku, ayo singkirkan ini.

272
00:14:17,630 --> 00:14:19,773
‫Dan itu lebih baik lagi.

273
00:14:23,120 --> 00:14:24,833
‫Jadi taruh ini di sini.

274
00:14:25,770 --> 00:14:28,950
‫Dan memang seharusnya begitu.

275
00:14:28,950 --> 00:14:29,840
‫Baiklah?

276
00:14:29,840 --> 00:14:31,950
‫Mari kita demi

277
00:14:31,950 --> 00:14:35,660
‫kelengkapan menyalin komentar ini di sini juga.

278
00:14:35,660 --> 00:14:39,333
‫Dan kemudian panggil yang ini B lagi.

279
00:14:41,160 --> 00:14:42,520
‫Baiklah.

280
00:14:42,520 --> 00:14:43,353
‫Sempurna.

281
00:14:44,720 --> 00:14:46,910
‫Mari kita salin yang ini di sini

282
00:14:46,910 --> 00:14:48,603
‫juga ke fungsi pengembangan.

283
00:14:49,770 --> 00:14:52,500
‫Karena saat ini, setelah kami mengirim kembali kesalahan

284
00:14:52,500 --> 00:14:55,723
‫itu, kami benar-benar tidak memiliki cara untuk melihat kesalahan yang lengkap.

285
00:14:58,460 --> 00:15:02,930
‫Baiklah, jadi, singkirkan ini agar lebih terlihat.

286
00:15:02,930 --> 00:15:04,483
‫Dan sekarang itu indah.

287
00:15:05,740 --> 00:15:06,900
‫Oke.

288
00:15:06,900 --> 00:15:08,800
‫Jadi mari kita keluar

289
00:15:08,800 --> 00:15:12,300
‫dari sini sekarang sehingga kita dapat memulai aplikasi produksi kita.

290
00:15:12,300 --> 00:15:15,670
‫Jadi pada dasarnya menjalankannya sekarang dalam produksi.

291
00:15:15,670 --> 00:15:18,500
‫Dan kami memiliki skrip

292
00:15:19,800 --> 00:15:23,970
‫untuk itu yang disebut npm run start production.

293
00:15:27,220 --> 00:15:28,560
‫Oke?

294
00:15:28,560 --> 00:15:31,100
‫Jadi jika kita mengujinya sekarang maka

295
00:15:31,100 --> 00:15:34,430
‫kita seharusnya tidak lagi melihat string ini di sini, ingat?

296
00:15:34,430 --> 00:15:37,090
‫Karena pada titik ini, kami tidak memiliki penanganan kesalahan

297
00:15:37,090 --> 00:15:39,610
‫untuk nama tur yang tidak valid seperti ini.

298
00:15:39,610 --> 00:15:40,637
‫Oke?

299
00:15:40,637 --> 00:15:41,470
‫Benar?

300
00:15:41,470 --> 00:15:42,303
‫Karena kita

301
00:15:42,303 --> 00:15:44,220
‫dalam produksi, dan itu bukan kesalahan operasional,

302
00:15:44,220 --> 00:15:46,127
‫ya, kami tidak ingin melihat ini.

303
00:15:46,127 --> 00:15:49,400
‫Dan itulah yang baru saja kami kodekan sebelumnya.

304
00:15:49,400 --> 00:15:53,030
‫Dan memang, ini adalah pesan kesalahan yang lebih umum.

305
00:15:53,030 --> 00:15:54,070
‫Benar?

306
00:15:54,070 --> 00:15:59,070
‫Tetapi jika kita meletakkannya kembali di sini di pengontrol tampilan, jadi jika

307
00:16:00,800 --> 00:16:03,170
‫kita mengembalikan penanganan kesalahan ini, tentu

308
00:16:03,170 --> 00:16:06,150
‫saja, karena ini di sini sekarang akan

309
00:16:06,150 --> 00:16:09,830
‫menjadi kesalahan operasional, maka tentu saja kita akan mendapatkan

310
00:16:09,830 --> 00:16:11,460
‫string kesalahan itu.

311
00:16:11,460 --> 00:16:12,930
‫Karena itu selalu menyenangkan

312
00:16:12,930 --> 00:16:15,400
‫untuk menunjukkan pesan yang ramah kepada pengguna.

313
00:16:15,400 --> 00:16:18,453
‫Tapi seperti yang Anda lihat, itu sebenarnya tidak terjadi.

314
00:16:19,540 --> 00:16:22,383
‫Jadi mengapa begitu?

315
00:16:25,140 --> 00:16:28,450
‫Nah, kita berada dalam kesalahan produksi.

316
00:16:28,450 --> 00:16:31,070
‫Kami berada di situs web yang dirender.

317
00:16:31,070 --> 00:16:34,290
‫Dan memang, kami memiliki kesalahan operasional.

318
00:16:34,290 --> 00:16:35,483
‫Sehingga ...

319
00:16:39,010 --> 00:16:40,263
‫Kami memiliki ini di tempat.

320
00:16:41,200 --> 00:16:45,010
‫Dan memang, itu harus bekerja seperti yang kita harapkan.

321
00:16:45,010 --> 00:16:47,200
‫Baiklah, mari kita coba masuk ke konsol

322
00:16:48,540 --> 00:16:49,880
‫pesan titik kesalahan hanya

323
00:16:51,740 --> 00:16:54,573
‫untuk melihat apakah kita benar-benar mendapatkannya pada saat ini.

324
00:16:56,140 --> 00:16:57,570
‫Baiklah.

325
00:16:57,570 --> 00:16:59,480
‫Muat ulang orang ini.

326
00:16:59,480 --> 00:17:01,853
‫Dan begitulah kesalahannya.

327
00:17:02,720 --> 00:17:05,170
‫Tapi tetap saja, itu sangat aneh.

328
00:17:05,170 --> 00:17:07,363
‫Jadi itu memang mencatat seluruh kesalahan.

329
00:17:15,210 --> 00:17:16,120
‫Sangat aneh.

330
00:17:16,120 --> 00:17:20,560
‫Karena entah kenapa, pesannya juga tidak ada.

331
00:17:20,560 --> 00:17:24,363
‫Jadi mari kita jalankan lagi dalam pengembangan.

332
00:17:25,968 --> 00:17:26,883
‫Jadi npm mulai.

333
00:17:30,120 --> 00:17:30,953
‫Baiklah.

334
00:17:31,940 --> 00:17:35,460
‫Dan di sini untuk beberapa alasan, ia mendapat akses ke pesan ini.

335
00:17:35,460 --> 00:17:38,110
‫Jadi itu berarti bahwa di pengontrol tampilan kami,

336
00:17:38,110 --> 00:17:40,553
‫kami benar-benar mengatur pesan itu dengan benar.

337
00:17:44,410 --> 00:17:45,983
‫Jalankan dalam produksi lagi.

338
00:17:48,080 --> 00:17:52,183
‫Jadi ini adalah hal-hal yang tidak kita sukai, kan?

339
00:17:54,370 --> 00:17:57,670
‫Jadi mari kita lihat di mana kesalahan kita

340
00:17:57,670 --> 00:17:59,550
‫dalam produksi sebenarnya dibuat.

341
00:17:59,550 --> 00:18:01,320
‫Dan itu di sini.

342
00:18:01,320 --> 00:18:04,720
‫Jadi objek kesalahan yang kita gunakan di sini dalam

343
00:18:04,720 --> 00:18:08,020
‫produksi adalah salinan dari kesalahan ini, bukan?

344
00:18:08,020 --> 00:18:10,960
‫Jadi salah satu yang masuk ke middleware ini.

345
00:18:10,960 --> 00:18:15,960
‫Jadi mari kita lihat keduanya di

346
00:18:15,960 --> 00:18:17,083
‫konsol.

347
00:18:18,850 --> 00:18:20,803
‫Jadi pesan titik kesalahan.

348
00:18:23,636 --> 00:18:26,303
‫Dan kemudian juga pesan titik kesalahan.

349
00:18:29,930 --> 00:18:31,203
‫Jadi lakukan itu lagi.

350
00:18:34,070 --> 00:18:35,620
‫Oke.

351
00:18:35,620 --> 00:18:37,470
‫Jadi kami melihat kesalahan

352
00:18:37,470 --> 00:18:40,590
‫itu, jadi kesalahan yang langsung masuk ke fungsi middleware

353
00:18:40,590 --> 00:18:42,630
‫kami, memang memiliki pesan tersebut.

354
00:18:42,630 --> 00:18:45,730
‫Tapi kemudian yang kita copy, jadi error,

355
00:18:45,730 --> 00:18:47,380
‫entah kenapa tidak.

356
00:18:47,380 --> 00:18:49,870
‫Jadi trik yang kita lakukan di

357
00:18:49,870 --> 00:18:53,160
‫sini, untuk beberapa alasan tidak menyalin pesan dengan

358
00:18:53,160 --> 00:18:54,130
‫itu, oke?

359
00:18:54,130 --> 00:18:57,930
‫Jadi mari kita lakukan perbaikan cepat untuk itu.

360
00:18:57,930 --> 00:19:02,930
‫Dan katakanlah pesan titik kesalahan sama dengan pesan titik kesalahan.

361
00:19:07,100 --> 00:19:07,933
‫Baiklah?

362
00:19:07,933 --> 00:19:10,963
‫Dan itu harus diperbaiki, semoga.

363
00:19:13,210 --> 00:19:14,660
‫Ah, baiklah.

364
00:19:14,660 --> 00:19:15,653
‫Ini dia.

365
00:19:16,910 --> 00:19:17,743
‫Benar.

366
00:19:19,430 --> 00:19:22,930
‫Jadi sekarang Anda melihat bahwa mereka memang sama.

367
00:19:22,930 --> 00:19:24,330
‫Dan itulah masalahnya.

368
00:19:25,490 --> 00:19:26,330
‫Baiklah?

369
00:19:26,330 --> 00:19:28,010
‫Jadi tanpa ini, sebenarnya

370
00:19:28,010 --> 00:19:30,543
‫semua kesalahan tidak akan berfungsi dengan benar.

371
00:19:31,610 --> 00:19:33,860
‫Jadi jika kita meletakkan ini di

372
00:19:33,860 --> 00:19:38,860
‫sini dan mencoba masuk misalnya, jadi admin@natours. saya

373
00:19:47,490 --> 00:19:50,970
‫Jadi Anda lihat, kami juga mendapatkan kesalahan yang tidak ditentukan di sini.

374
00:19:50,970 --> 00:19:51,890
‫Baiklah.

375
00:19:51,890 --> 00:19:54,630
‫Dan itu sekali lagi karena kita sedang

376
00:19:54,630 --> 00:19:58,860
‫dalam produksi dan objek kesalahan kita tidak menyalin pesan dengan benar.

377
00:19:58,860 --> 00:20:01,400
‫Saya tidak yakin mengapa saya tidak menangkap yang

378
00:20:01,400 --> 00:20:03,780
‫ini ketika kami benar-benar menerapkan ini.

379
00:20:03,780 --> 00:20:07,253
‫Tapi mungkin saya tidak mengujinya dengan cara yang cukup menyeluruh.

380
00:20:08,240 --> 00:20:09,640
‫Oke?

381
00:20:09,640 --> 00:20:11,403
‫Lagi pula, jika kita mencoba ini

382
00:20:12,470 --> 00:20:15,320
‫sekarang, sekarang kita mendapatkan pesan kesalahan yang benar yang

383
00:20:15,320 --> 00:20:16,370
‫kita harapkan.

384
00:20:18,230 --> 00:20:19,300
‫Baiklah.

385
00:20:19,300 --> 00:20:20,133
‫Besar.

386
00:20:20,133 --> 00:20:21,360
‫Jadi itu terpecahkan.

387
00:20:21,360 --> 00:20:24,950
‫Dan itu benar-benar mengakhiri video ini.

388
00:20:24,950 --> 00:20:26,250
‫Jadi

389
00:20:26,250 --> 00:20:28,740
‫kesimpulannya, kami sekarang memiliki strategi

390
00:20:28,740 --> 00:20:33,740
‫penanganan kesalahan yang berfungsi untuk pengembangan, seperti sebelumnya, dan

391
00:20:34,050 --> 00:20:35,780
‫juga untuk produksi.

392
00:20:35,780 --> 00:20:39,000
‫Dan kemudian di masing-masing dari mereka, pada dasarnya kami memiliki dua cabang.

393
00:20:39,000 --> 00:20:41,500
‫Seseorang mengirimkan pesan kesalahan untuk API, yang

394
00:20:41,500 --> 00:20:43,397
‫persis seperti yang kita miliki

395
00:20:43,397 --> 00:20:46,640
‫sebelumnya, dan sekarang kita juga memiliki semacam penangan untuk

396
00:20:46,640 --> 00:20:48,430
‫situs web yang dirender.

397
00:20:48,430 --> 00:20:52,220
‫Jadi dalam hal ini, kami merender template kesalahan kami.

398
00:20:52,220 --> 00:20:54,850
‫Kemudian dalam produksi, kami juga membedakan

399
00:20:54,850 --> 00:20:57,620
‫antara situs web yang dirender dan API.

400
00:20:57,620 --> 00:20:59,270
‫Dan seperti sebelumnya,

401
00:20:59,270 --> 00:21:01,700
‫di dalam masing-masing cabang ini, kami

402
00:21:01,700 --> 00:21:03,784
‫juga membedakan antara kesalahan

403
00:21:03,784 --> 00:21:06,293
‫operasi dan kesalahan yang tidak diketahui.

404
00:21:07,240 --> 00:21:09,140
‫Jadi operasional dan tidak diketahui.

405
00:21:09,140 --> 00:21:13,230
‫Dan kemudian di dalam dirender, juga operasional dan tidak diketahui.

406
00:21:13,230 --> 00:21:15,490
‫Demikian pula untuk situs web

407
00:21:15,490 --> 00:21:18,600
‫yang dirender, jika kami memiliki kesalahan operasional, jadi yang

408
00:21:18,600 --> 00:21:21,270
‫tepercaya, maka kami mengirim pesan kesalahan tepercaya kami.

409
00:21:21,270 --> 00:21:23,590
‫Tetapi jika kita tidak mempercayai kesalahannya,

410
00:21:23,590 --> 00:21:25,150
‫jadi ketika kita

411
00:21:25,150 --> 00:21:29,560
‫tidak mengetahuinya, maka kita cukup mengirim pesan umum ini kembali ke pengguna.

412
00:21:29,560 --> 00:21:31,630
‫Sangat bagus.

413
00:21:31,630 --> 00:21:35,050
‫Mari kita berhenti di sini dan kembali ke

414
00:21:35,920 --> 00:21:38,350
‫pengembangan dan menyelesaikan kuliah ini.

415
00:21:38,350 --> 00:21:39,763
‫Jadi sampai jumpa di yang berikutnya.

