﻿1
00:00:00,860 --> 00:00:03,680
‫Instruktur: Selamat datang kembali, sekarang sebelum kita masuk

2
00:00:03,680 --> 00:00:06,820
‫jauh ke penanganan kesalahan yang sebenarnya, pertama-tama mari kita

3
00:00:06,820 --> 00:00:09,430
‫tulis handler untuk rute yang tidak ditentukan.

4
00:00:09,430 --> 00:00:12,250
‫Jadi pada dasarnya untuk rute yang belum kami

5
00:00:12,250 --> 00:00:13,403
‫tetapkan handlernya.

6
00:00:14,800 --> 00:00:17,820
‫Dan pertama-tama, kita perlu memulai aplikasi kita di

7
00:00:17,820 --> 00:00:21,053
‫sini yang tidak kita hentikan setelah sesi debugging baru-baru ini.

8
00:00:21,950 --> 00:00:23,363
‫Jadi MPM mulai.

9
00:00:25,260 --> 00:00:28,290
‫Jadi mari kita tunggu koneksi database.

10
00:00:28,290 --> 00:00:33,290
‫Ini dia, dan sekarang mari kita pergi ke Postman di sini dan mencoba

11
00:00:33,640 --> 00:00:36,810
‫untuk mencapai rute yang belum kita definisikan.

12
00:00:36,810 --> 00:00:39,793
‫Jadi saya akan melanjutkan, salin URL

13
00:00:41,892 --> 00:00:44,260
‫ini di sini, baiklah,

14
00:00:44,260 --> 00:00:46,410
‫dan sebagai contoh katakanlah

15
00:00:48,240 --> 00:00:49,490
‫alih-alih

16
00:00:49,490 --> 00:00:53,223
‫tur apiV1, kita akan mengatakan hanya api/tours.

17
00:00:54,140 --> 00:00:58,400
‫Oke jadi dalam hal ini kita akan mendapatkan hasil

18
00:00:58,400 --> 00:01:01,470
‫HTML ini, baiklah, jadi Express

19
00:01:01,470 --> 00:01:05,380
‫secara otomatis mengirimkan kode HTML ini ke sini,

20
00:01:05,380 --> 00:01:08,700
‫bersama dengan kode kesalahan 404 Not Found

21
00:01:08,700 --> 00:01:12,900
‫jika tidak ada handler untuk rute yang diminta, oke.

22
00:01:12,900 --> 00:01:16,483
‫Atau, kita juga bisa salah mengeja wisata di sini misalnya.

23
00:01:17,640 --> 00:01:19,850
‫Jadi misalnya dalam hal ini kita masih

24
00:01:19,850 --> 00:01:21,840
‫akan mendapatkan kesalahan yang sama.

25
00:01:21,840 --> 00:01:25,210
‫Sekarang ada juga situasi lain yang jika

26
00:01:25,210 --> 00:01:29,580
‫di sini setelah tur kita menentukan sesuatu yang lain,

27
00:01:29,580 --> 00:01:31,800
‫katakan saja seperti ini.

28
00:01:31,800 --> 00:01:34,790
‫Jadi mari kita lihat kesalahan yang kita dapatkan,

29
00:01:34,790 --> 00:01:38,470
‫dan sekarang kita mendapatkan bahwa cast to object ID gagal.

30
00:01:38,470 --> 00:01:40,560
‫Dan itu karena kami

31
00:01:40,560 --> 00:01:45,390
‫sebenarnya memiliki rute yang menerima parameter ID di sini setelah tour/, kan.

32
00:01:45,390 --> 00:01:48,770
‫Jadi MongoDB pada dasarnya mencoba menemukan dokumen

33
00:01:48,770 --> 00:01:53,180
‫dengan ID ini, tetapi tidak dapat mengubahnya menjadi ID objek

34
00:01:53,180 --> 00:01:55,160
‫MongoDB yang valid, oke.

35
00:01:55,160 --> 00:01:58,810
‫Jadi sekali lagi itu adalah situasi yang berbeda, mari kita terus bekerja

36
00:01:59,820 --> 00:02:02,930
‫dengan yang ini, jadi sekali lagi, di mana kita mendapatkan

37
00:02:02,930 --> 00:02:05,550
‫kesalahan ini tetapi dalam bentuk HTML ini.

38
00:02:05,550 --> 00:02:08,330
‫Sekarang karena kita melakukan API di

39
00:02:08,330 --> 00:02:12,070
‫sini, tidak masuk akal untuk mengirim kembali HTML, kan, jadi

40
00:02:12,070 --> 00:02:15,400
‫sekarang mari kita perbaiki ini dan pada dasarnya membuat

41
00:02:15,400 --> 00:02:19,270
‫fungsi pegangan untuk semua rute yang tidak di-cache oleh router kita.

42
00:02:19,270 --> 00:02:22,610
‫Oke, jadi mari kita kembali ke aplikasi kita di sini

43
00:02:22,610 --> 00:02:25,540
‫dan membuka aplikasi. js.

44
00:02:25,540 --> 00:02:27,950
‫Oke, begitulah kira-kira definisi dari

45
00:02:27,950 --> 00:02:30,180
‫aplikasi Express kita.

46
00:02:30,180 --> 00:02:32,530
‫Sekarang sebelum melakukan hal lain

47
00:02:32,530 --> 00:02:35,190
‫mari kita singkirkan middleware ini yang tidak

48
00:02:35,190 --> 00:02:36,700
‫lagi kita butuhkan.

49
00:02:36,700 --> 00:02:39,360
‫Jadi kami hanya menggunakan ini di

50
00:02:39,360 --> 00:02:43,160
‫sini untuk mendemonstrasikan konsep middleware, dan pada titik ini

51
00:02:43,160 --> 00:02:45,080
‫kami tidak lagi membutuhkannya.

52
00:02:45,080 --> 00:02:47,980
‫Baiklah sekarang bagaimana kita akan menerapkan pengendali

53
00:02:47,980 --> 00:02:51,410
‫rute untuk rute yang tidak di-cache oleh pengendali

54
00:02:51,410 --> 00:02:53,380
‫rute kita yang lain?

55
00:02:53,380 --> 00:02:56,160
‫Jadi untuk melakukan itu, ingatlah bahwa

56
00:02:56,160 --> 00:02:59,770
‫semua fungsi middleware ini dijalankan sesuai urutannya dalam kode.

57
00:02:59,770 --> 00:03:02,930
‫Jadi idenya adalah jika kita memiliki permintaan

58
00:03:02,930 --> 00:03:06,210
‫yang membuatnya menjadi titik ini di sini

59
00:03:06,210 --> 00:03:08,760
‫dari kode kita, maka itu

60
00:03:08,760 --> 00:03:12,860
‫berarti baik tourRouter maupun userRouter tidak dapat menyimpannya, oke.

61
00:03:12,860 --> 00:03:16,590
‫Jadi jika kita menambahkan middleware di sini setelah router ini,

62
00:03:16,590 --> 00:03:20,060
‫itu hanya akan tercapai lagi jika tidak ditangani oleh

63
00:03:20,060 --> 00:03:22,470
‫router kita yang lain, oke.

64
00:03:22,470 --> 00:03:25,610
‫Jadi mari kita lakukan itu, dan kemudian benar-benar memahami

65
00:03:25,610 --> 00:03:27,550
‫cara kerjanya setelah diimplementasikan.

66
00:03:27,550 --> 00:03:29,600
‫Jadi kami akan menerapkan pengendali rute, dan

67
00:03:29,600 --> 00:03:30,923
‫kami katakan app.

68
00:03:32,450 --> 00:03:34,540
‫dan sekarang metode HTTP yang

69
00:03:34,540 --> 00:03:36,380
‫ingin kita tentukan rutenya.

70
00:03:36,380 --> 00:03:40,630
‫Sekarang kita bisa menggunakan get here kan, jadi seperti yang kita lakukan

71
00:03:40,630 --> 00:03:43,410
‫sebelumnya tapi lalu bagaimana dengan permintaan posting, atau

72
00:03:43,410 --> 00:03:45,030
‫hapus, atau permintaan patch?

73
00:03:45,030 --> 00:03:47,730
‫Anda kemudian harus menulis penangan untuk ini juga,

74
00:03:47,730 --> 00:03:50,190
‫dan kami tidak menginginkan itu, kami hanya ingin

75
00:03:50,190 --> 00:03:54,270
‫menangani semua rute, jadi semua URL, untuk semua kata kerja di sini

76
00:03:54,270 --> 00:03:56,707
‫di penangan yang satu ini, oke.

77
00:03:56,707 --> 00:03:59,710
‫Jadi di Express, kita bisa menggunakan app. semua.

78
00:03:59,710 --> 00:04:02,460
‫Dan itu kemudian akan dijalankan untuk

79
00:04:02,460 --> 00:04:05,430
‫semua kata kerja, Jadi semua metode HTTP, baiklah.

80
00:04:05,430 --> 00:04:08,270
‫Selanjutnya kami menentukan URL, dan karena di

81
00:04:08,270 --> 00:04:10,920
‫sini kami ingin menangani semua URL yang

82
00:04:10,920 --> 00:04:13,950
‫tidak ditangani sebelum kami dapat menggunakan bintang di

83
00:04:13,950 --> 00:04:17,320
‫sini, yang akan berdiri untuk semuanya, baiklah, dan sisanya

84
00:04:17,320 --> 00:04:19,920
‫hanyalah fungsi middleware biasa , sama

85
00:04:19,920 --> 00:04:21,183
‫seperti sebelumnya.

86
00:04:23,980 --> 00:04:24,893
‫Jadi

87
00:04:26,210 --> 00:04:27,883
‫permintaan, tanggapan, dan selanjutnya.

88
00:04:29,270 --> 00:04:32,290
‫Oke, dan apa yang ingin kita lakukan di sini?

89
00:04:32,290 --> 00:04:34,700
‫Kami hanya ingin mengirim kembali respons

90
00:04:34,700 --> 00:04:38,653
‫dalam format JSON, jadi bukan HTML yang kami miliki saat ini.

91
00:04:40,100 --> 00:04:41,573
‫Jadi res. status,

92
00:04:43,100 --> 00:04:46,110
‫dan di sini mari kita atur 404, jadi

93
00:04:48,220 --> 00:04:52,190
‫Tidak Ditemukan dan kemudian respons JSON, jadi seperti yang biasa

94
00:04:52,190 --> 00:04:54,343
‫kita atur statusnya menjadi gagal.

95
00:04:57,090 --> 00:05:01,153
‫Jadi hanya respons berformat berdekatan biasa.

96
00:05:03,590 --> 00:05:05,980
‫Dan kemudian semacam pesan di sini, dan sebenarnya mari

97
00:05:05,980 --> 00:05:07,580
‫kita buat string template di

98
00:05:07,580 --> 00:05:09,790
‫sini, karena saya ingin meletakkan variabel di sana.

99
00:05:09,790 --> 00:05:11,370
‫Jadi tidak bisa,

100
00:05:11,370 --> 00:05:12,203
‫cari.

101
00:05:13,380 --> 00:05:16,650
‫Dan kemudian kita bisa menggunakan req. originalUrl oke, jadi

102
00:05:18,220 --> 00:05:21,900
‫itu properti yang kami miliki atas

103
00:05:21,900 --> 00:05:26,233
‫permintaan yang sesuai dengan namanya, URL yang diminta,

104
00:05:27,300 --> 00:05:28,270
‫baiklah.

105
00:05:28,270 --> 00:05:30,610
‫Jadi tanggapan baru yang akan kita

106
00:05:30,610 --> 00:05:33,230
‫kirim sekarang ini jauh lebih baik daripada

107
00:05:33,230 --> 00:05:37,163
‫HTML yang kita terima sebelumnya, jadi sekarang mari kita uji itu.

108
00:05:40,440 --> 00:05:44,020
‫Dan memang, sekarang kami mendapatkan pesan kesalahan JSON kembali di sini.

109
00:05:44,020 --> 00:05:47,970
‫Jadi di sini kami juga mendapatkan URL yang

110
00:05:47,970 --> 00:05:50,586
‫diminta, dan memang itu

111
00:05:50,586 --> 00:05:54,760
‫yang kami coba akses, tetapi tidak tersedia, oke, bagus.

112
00:05:54,760 --> 00:05:57,240
‫Sekarang sekali lagi, mengapa ini berhasil?

113
00:05:57,240 --> 00:06:01,200
‫Jadi sekali lagi idenya adalah jika kita dapat mencapai titik

114
00:06:01,200 --> 00:06:04,120
‫ini di sini maka itu berarti siklus

115
00:06:04,120 --> 00:06:06,281
‫respons permintaan belum selesai

116
00:06:06,281 --> 00:06:09,100
‫pada titik ini dalam kode kita, kan.

117
00:06:09,100 --> 00:06:11,780
‫Karena ingat bahwa middleware ditambahkan ke tumpukan

118
00:06:11,780 --> 00:06:14,040
‫middleware dalam urutan yang didefinisikan di

119
00:06:14,040 --> 00:06:16,010
‫sini dalam kode kita.

120
00:06:16,010 --> 00:06:18,810
‫Jadi pada dasarnya kode ini di sini berjalan lebih

121
00:06:18,810 --> 00:06:21,840
‫dulu, dan jika rutenya cocok di sini di tourRouter

122
00:06:21,840 --> 00:06:25,230
‫kami, maka permintaan kami bahkan tidak akan pernah mencapai kode

123
00:06:25,230 --> 00:06:27,660
‫ini, jadi ini tidak akan dieksekusi.

124
00:06:27,660 --> 00:06:30,050
‫Jadi ini pada dasarnya harus menjadi bagian

125
00:06:30,050 --> 00:06:32,560
‫terakhir setelah semua rute kita yang lain, baiklah.

126
00:06:32,560 --> 00:06:35,240
‫Dan jika saya, hanya untuk mencoba

127
00:06:35,240 --> 00:06:38,140
‫ini, sekarang letakkan ini tepat di atas

128
00:06:39,230 --> 00:06:43,260
‫aplikasi kami maka Anda akan melihat bahwa apa pun permintaan

129
00:06:43,260 --> 00:06:47,750
‫yang akan kami lakukan, kami akan selalu mendapatkan respons yang sama.

130
00:06:47,750 --> 00:06:49,653
‫Benar, jadi mari kita

131
00:06:51,550 --> 00:06:54,600
‫uji itu, dan memang sekarang kita mendapatkan pesan

132
00:06:54,600 --> 00:06:56,600
‫kesalahan JS, dan itu karena

133
00:06:56,600 --> 00:06:59,850
‫semua permintaan sekarang mencapai pengendali rute ini di sini,

134
00:06:59,850 --> 00:07:04,290
‫dan itu benar-benar cocok karena ini adalah permintaan GET, yang merupakan bagian

135
00:07:04,290 --> 00:07:08,060
‫dari semua kata kerja, benar, dan lalu semua rute, jadi semua

136
00:07:08,060 --> 00:07:10,760
‫URL di-cache di sini, dan tentu saja

137
00:07:10,760 --> 00:07:13,920
‫menangani URL yang baru saja kita lakukan di sini.

138
00:07:13,920 --> 00:07:17,333
‫Dan hal yang sama tentu saja, misalnya untuk menghapus tur.

139
00:07:18,330 --> 00:07:20,590
‫Jadi hal yang sama akan terjadi kita

140
00:07:20,590 --> 00:07:22,573
‫akan selalu mendapatkan respon yang

141
00:07:23,740 --> 00:07:24,573
‫sama, baiklah.

142
00:07:25,430 --> 00:07:28,500
‫Jadi mari kita kembalikan, tapi

143
00:07:28,500 --> 00:07:33,183
‫ini hanya untuk mendemonstrasikan bagaimana dan mengapa ini

144
00:07:34,100 --> 00:07:35,670
‫berhasil, oke.

145
00:07:35,670 --> 00:07:38,890
‫Hebat jadi ini adalah bagian penting untuk membuat API

146
00:07:38,890 --> 00:07:42,150
‫kita sedikit lebih ramah pengguna, tapi selanjutnya mari kita

147
00:07:42,150 --> 00:07:44,873
‫mulai belajar tentang penanganan kesalahan yang sebenarnya.

