﻿1
00:00:00,980 --> 00:00:03,100
‫Instruktur: Dalam video ini, saya ingin,

2
00:00:03,100 --> 00:00:06,510
‫dengan sangat cepat, memfaktorkan ulang fitur API yang telah kita

3
00:00:06,510 --> 00:00:08,620
‫terapkan selama beberapa kuliah terakhir.

4
00:00:08,620 --> 00:00:11,760
‫Sekarang, ini tidak hanya membuat kode kita sedikit lebih bersih,

5
00:00:11,760 --> 00:00:15,000
‫tetapi juga membuatnya lebih modular dan lebih dapat digunakan kembali di

6
00:00:15,000 --> 00:00:15,913
‫masa mendatang.

7
00:00:17,290 --> 00:00:20,430
‫Jadi, sekarang, kita memiliki semua kode ini

8
00:00:20,430 --> 00:00:25,050
‫untuk fitur yang kita buat sebelumnya di fungsi getALLTours ini, bukan?

9
00:00:25,050 --> 00:00:26,860
‫Dan ini terlihat agak berantakan.

10
00:00:26,860 --> 00:00:30,160
‫Agak sulit dimengerti, oke?

11
00:00:30,160 --> 00:00:33,900
‫Dan, bayangkan juga bahwa kami ingin menggunakan fitur yang sama ini untuk

12
00:00:33,900 --> 00:00:35,010
‫sumber daya lain.

13
00:00:35,010 --> 00:00:38,250
‫Misalnya, untuk pengguna atau, nanti, untuk ulasan.

14
00:00:38,250 --> 00:00:40,910
‫Akan sangat tidak praktis untuk, pada dasarnya,

15
00:00:40,910 --> 00:00:43,300
‫menyalin kode dari sini dan menggunakannya,

16
00:00:43,300 --> 00:00:45,670
‫kemudian, di sumber lain, benar.

17
00:00:45,670 --> 00:00:47,360
‫Jadi, yang akan saya lakukan

18
00:00:47,360 --> 00:00:50,340
‫adalah, sekarang, membuat kelas di mana saya akan menambahkan

19
00:00:50,340 --> 00:00:54,070
‫satu metode untuk setiap fitur atau fungsi API ini, seperti yang mungkin

20
00:00:54,070 --> 00:00:55,500
‫Anda sebut juga.

21
00:00:55,500 --> 00:00:56,900
‫Baiklah?

22
00:00:56,900 --> 00:00:59,906
‫Jadi, mari kita lakukan di sini dan saya akan

23
00:00:59,906 --> 00:01:02,950
‫melakukannya di sini, untuk saat ini, kemudian, nanti, saya

24
00:01:02,950 --> 00:01:05,750
‫benar-benar akan mengekspornya ke filenya sendiri, pada

25
00:01:05,750 --> 00:01:08,810
‫dasarnya, untuk membuat modul yang dapat digunakan kembali yang

26
00:01:08,810 --> 00:01:11,760
‫kita dapat , nanti, impor ke pengontrol lain.

27
00:01:11,760 --> 00:01:12,960
‫Baiklah?

28
00:01:12,960 --> 00:01:16,663
‫Jadi, kelas, dan saya menyebutnya APIFeatures.

29
00:01:19,260 --> 00:01:20,093
‫Baiklah.

30
00:01:21,720 --> 00:01:24,510
‫Kemudian, kita mulai dengan fungsi konstruktor

31
00:01:24,510 --> 00:01:26,840
‫kita dan ingat bahwa ini

32
00:01:26,840 --> 00:01:29,990
‫adalah fungsi yang dipanggil secara otomatis segera setelah

33
00:01:29,990 --> 00:01:33,070
‫kita membuat objek baru dari kelas ini, oke.

34
00:01:33,070 --> 00:01:36,830
‫Sekarang, apa yang sebenarnya saya inginkan dalam fitur API ini?

35
00:01:36,830 --> 00:01:41,090
‫Sebenarnya, saya akan mengurai dua variabel di sini, oke?

36
00:01:41,090 --> 00:01:45,962
‫Jadi query luwak dan juga queryString yang kita dapatkan

37
00:01:45,962 --> 00:01:47,323
‫dari express.

38
00:01:48,410 --> 00:01:51,420
‫Jadi, pada dasarnya, berasal dari rute, oke.

39
00:01:51,420 --> 00:01:53,490
‫Jadi itulah yang biasanya kami

40
00:01:53,490 --> 00:01:56,760
‫akses di req. pertanyaan, oke.

41
00:01:56,760 --> 00:01:59,780
‫Sekarang, sekali lagi, saya meneruskan kueri di sini karena saya

42
00:01:59,780 --> 00:02:03,110
‫tidak ingin kueri di dalam kelas ini karena itu akan memantulkan

43
00:02:03,110 --> 00:02:06,040
‫kelas ini ke sumber daya tur, tetapi, sekali lagi,

44
00:02:06,040 --> 00:02:08,903
‫saya ingin ini dapat digunakan kembali semaksimal mungkin.

45
00:02:10,690 --> 00:02:11,523
‫Baiklah.

46
00:02:11,523 --> 00:02:14,080
‫Jadi, apa yang biasanya kita lakukan dalam

47
00:02:14,080 --> 00:02:18,490
‫fungsi konstruktor ini adalah mengatakan ini. kueri sama dengan kueri yang kami dapatkan sebagai

48
00:02:18,490 --> 00:02:21,480
‫argumen dan kemudian ini. queryString

49
00:02:25,130 --> 00:02:27,890
‫sama dengan queryString.

50
00:02:27,890 --> 00:02:28,723
‫Oke?

51
00:02:28,723 --> 00:02:32,490
‫Jadi sangat sederhana, fungsi konstruktor yang sangat khas.

52
00:02:32,490 --> 00:02:35,580
‫Dan sekarang, seperti yang saya sebutkan, saya

53
00:02:35,580 --> 00:02:39,313
‫akan membuat satu metode untuk setiap fungsi, dimulai dengan filter.

54
00:02:41,860 --> 00:02:42,693
‫Baiklah.

55
00:02:42,693 --> 00:02:46,490
‫Jadi, sekarang mari kita lanjutkan dan potong kode dari sini.

56
00:02:46,490 --> 00:02:49,130
‫Atau, sebenarnya, saya akan menyalinnya dan mereka

57
00:02:49,130 --> 00:02:52,180
‫mengomentarinya, sehingga saya tidak melakukan kerusakan yang tidak disengaja.

58
00:02:52,180 --> 00:02:53,710
‫Jadi, salin dan

59
00:02:55,350 --> 00:02:57,120
‫komentar dan taruh di sini.

60
00:02:57,120 --> 00:02:59,450
‫Jadi, beberapa hal yang perlu kita ubah.

61
00:02:59,450 --> 00:03:03,350
‫Pertama, permintaan. kueri tidak akan tersedia di

62
00:03:03,350 --> 00:03:04,830
‫dalam kelas ini.

63
00:03:04,830 --> 00:03:07,250
‫Jadi, itulah mengapa kami benar-benar mem-parsing di queryString.

64
00:03:07,250 --> 00:03:09,930
‫Jadi, ini di sini akan diganti dengan

65
00:03:09,930 --> 00:03:11,623
‫ini. string kueri.

66
00:03:13,490 --> 00:03:14,323
‫Oke?

67
00:03:14,323 --> 00:03:16,450
‫Jadi, sekali lagi, ini hanya Javascript dasar.

68
00:03:16,450 --> 00:03:20,260
‫Sebenarnya tidak ada hubungannya dengan Note atau Express sama sekali.

69
00:03:20,260 --> 00:03:24,760
‫Kemudian sisanya di sini oke tapi ini di sini tidak oke sama sekali.

70
00:03:24,760 --> 00:03:29,340
‫Jadi saya tidak ingin menanyakan tur secara langsung di sini, ingat, tetapi

71
00:03:29,340 --> 00:03:32,170
‫sebaliknya, saya hanya ingin menambahkan temuan ini

72
00:03:32,170 --> 00:03:34,650
‫ke kueri yang sudah kita miliki.

73
00:03:34,650 --> 00:03:37,147
‫Jadi ini. pertanyaan. menemukan

74
00:03:40,560 --> 00:03:43,763
‫dan, yang kemudian akan ini.

75
00:03:45,010 --> 00:03:45,860
‫Baiklah?

76
00:03:45,860 --> 00:03:47,800
‫Mari, sekarang, singkirkan ini.

77
00:03:47,800 --> 00:03:50,370
‫Dan sebelum kita menambahkan metode lagi di sini, mari

78
00:03:50,370 --> 00:03:52,870
‫kita lanjutkan dan gunakan kelas ini agar ini

79
00:03:52,870 --> 00:03:54,833
‫lebih masuk akal bagi Anda.

80
00:03:55,700 --> 00:03:56,533
‫Oke?

81
00:03:56,533 --> 00:03:58,653
‫Jadi, bagaimana ini sebenarnya akan berhasil?

82
00:03:59,890 --> 00:04:02,400
‫Dan saya akan melakukan semuanya di sini di akhir

83
00:04:02,400 --> 00:04:04,420
‫di sini di bawah Execute Query.

84
00:04:04,420 --> 00:04:05,350
‫Baiklah?

85
00:04:05,350 --> 00:04:07,750
‫Jadi, yang bisa saya lakukan sekarang adalah

86
00:04:07,750 --> 00:04:09,583
‫membuat variabel bernama Features, misalnya.

87
00:04:12,450 --> 00:04:17,300
‫Dan kemudian dari sini, saya akan membuat objek fitur API baru.

88
00:04:17,300 --> 00:04:18,160
‫Oke?

89
00:04:18,160 --> 00:04:21,560
‫Jadi, pada dasarnya, membuat instance dari fitur API ini yang

90
00:04:21,560 --> 00:04:23,870
‫kemudian akan disimpan ke dalam Features.

91
00:04:23,870 --> 00:04:26,600
‫Dan di sini, kita akan, kemudian, memiliki akses

92
00:04:26,600 --> 00:04:29,380
‫ke semua metode yang akan kita definisikan dalam definisi kelas.

93
00:04:29,380 --> 00:04:30,360
‫Oke?

94
00:04:30,360 --> 00:04:33,490
‫Jadi, ingat, di sini, kita perlu melewatkan

95
00:04:33,490 --> 00:04:34,980
‫kueri dan kueriString.

96
00:04:34,980 --> 00:04:36,983
‫Jadi, pertanyaannya, bagaimana kita membuatnya?

97
00:04:38,440 --> 00:04:41,580
‫Ingat, ini Tur. Temukan.

98
00:04:41,580 --> 00:04:45,040
‫Jadi, ada objek kueri dan, itulah yang kami uraikan

99
00:04:45,040 --> 00:04:48,010
‫ke dalam kelas ini dan kemudian, tentu

100
00:04:48,010 --> 00:04:52,410
‫saja, kueriString yang merupakan req. pertanyaan.

101
00:04:52,410 --> 00:04:54,990
‫Oke, sekarang, pada fitur ini di sini, ingat,

102
00:04:54,990 --> 00:04:57,160
‫kami tidak memiliki akses ke filter.

103
00:04:57,160 --> 00:05:00,153
‫Jadi, mari kita letakkan di sini setelahnya.

104
00:05:01,410 --> 00:05:04,070
‫Jadi, . Saring.

105
00:05:04,070 --> 00:05:05,570
‫Berikan simpanan.

106
00:05:05,570 --> 00:05:07,750
‫Jadi, seperti ini, kita akan

107
00:05:07,750 --> 00:05:10,550
‫menjalankan atau membuat kode untuk fungsionalitas pemfilteran API.

108
00:05:10,550 --> 00:05:12,760
‫Kemudian, di sini, baris berikutnya, tentu saja,

109
00:05:12,760 --> 00:05:14,970
‫tidak akan berfungsi karena kueri ini di

110
00:05:14,970 --> 00:05:16,670
‫sini tidak ada lagi.

111
00:05:16,670 --> 00:05:20,947
‫Sebaliknya, apa yang kita miliki sekarang adalah fitur. pertanyaan, kan?

112
00:05:22,760 --> 00:05:24,960
‫Jadi setelah semua pemrosesan ini sekarang, pada dasarnya.

113
00:05:26,040 --> 00:05:29,530
‫Oke, jadi, sekarang, setelah filter ini, ini. query kemudian akan

114
00:05:29,530 --> 00:05:32,500
‫memiliki metode find baru ini di atasnya.

115
00:05:32,500 --> 00:05:37,310
‫Oke, dan sekali lagi, ini kemudian disimpan dalam ini. pertanyaan.

116
00:05:37,310 --> 00:05:39,910
‫Dan, nanti, kita akan memiliki semua metode lain yang, semuanya,

117
00:05:39,910 --> 00:05:41,930
‫akan memanipulasi ini. query sehingga,

118
00:05:42,886 --> 00:05:45,729
‫pada akhirnya, ini. query adalah query

119
00:05:45,729 --> 00:05:47,620
‫yang ingin kita eksekusi.

120
00:05:47,620 --> 00:05:48,793
‫Jadi, seperti di sini.

121
00:05:49,920 --> 00:05:53,800
‫Oke, jadi, seperti di sini, kami selalu memanipulasi

122
00:05:53,800 --> 00:05:55,130
‫variabel kueri.

123
00:05:55,130 --> 00:05:57,460
‫Kami terus menambahkan lebih banyak dan lebih

124
00:05:57,460 --> 00:06:00,100
‫banyak metode ke dalamnya sampai kami, kemudian, mengeksekusinya di akhir.

125
00:06:00,100 --> 00:06:02,530
‫Jadi, di sini, kami melakukan hal yang persis sama.

126
00:06:02,530 --> 00:06:05,910
‫Kami hanya memindahkan kode ke semua metode ini.

127
00:06:05,910 --> 00:06:06,743
‫Oke?

128
00:06:06,743 --> 00:06:09,900
‫Kemudian, pada akhirnya, seperti yang saya katakan, kueri akan disimpan

129
00:06:09,900 --> 00:06:13,290
‫di dalam properti ini di sini dan, ya, di situlah kita,

130
00:06:13,290 --> 00:06:14,800
‫kemudian, melakukan penantian dan

131
00:06:14,800 --> 00:06:16,093
‫mendapatkan kembali hasilnya.

132
00:06:17,360 --> 00:06:18,220
‫Baiklah?

133
00:06:18,220 --> 00:06:21,763
‫Bagaimanapun, mari terus bergerak di sini dan menerapkan penyortiran.

134
00:06:22,730 --> 00:06:24,913
‫Jadi, saya menyalin dan berkomentar.

135
00:06:27,300 --> 00:06:32,003
‫Jadi, filter dan yang berikutnya disebut Sortir.

136
00:06:34,030 --> 00:06:35,160
‫Baiklah.

137
00:06:35,160 --> 00:06:38,510
‫Jadi, di sini sekali lagi, kita perlu mengganti request. permintaan dengan

138
00:06:38,510 --> 00:06:41,013
‫ini. queryString, oke.

139
00:06:43,455 --> 00:06:46,288
‫Dan kemudian, kueri sekarang ini. pertanyaan.

140
00:06:47,510 --> 00:06:52,383
‫Jadi mari kita empat ini dalam hal ini. pertanyaan.

141
00:06:56,540 --> 00:06:59,950
‫Oke, sekarang, tujuannya di sini adalah untuk

142
00:06:59,950 --> 00:07:03,380
‫menghubungkan metode ini di sini satu demi satu.

143
00:07:03,380 --> 00:07:05,340
‫Jadi izinkan saya menunjukkannya kepada Anda di sini.

144
00:07:05,340 --> 00:07:08,262
‫Jadi kami memiliki filter dan kemudian, setelah itu,

145
00:07:08,262 --> 00:07:10,253
‫kami ingin merantai metode pengurutan.

146
00:07:12,730 --> 00:07:15,820
‫Sekarang, saat ini, itu tidak benar-benar akan

147
00:07:15,820 --> 00:07:20,110
‫berhasil karena di mana kita sebenarnya merantai hal semacam ini?

148
00:07:20,110 --> 00:07:24,170
‫Jadi, pada dasarnya, kami mencoba menyebutnya sebagai hasil dari ini

149
00:07:24,170 --> 00:07:27,120
‫tetapi, sekarang, apa hasil dari ini?

150
00:07:27,120 --> 00:07:29,840
‫Yah, sebenarnya tidak apa-apa karena metode filter

151
00:07:29,840 --> 00:07:32,840
‫ini di sini tidak mengembalikan apa pun, bukan?

152
00:07:32,840 --> 00:07:35,460
‫Sekarang, potongan kode di sini, tentu

153
00:07:35,460 --> 00:07:38,830
‫saja, mengembalikan objek yang baru saja dibuat dan, kemudian,

154
00:07:38,830 --> 00:07:41,560
‫kita dapat mengaitkan metode filter pada objek tersebut.

155
00:07:41,560 --> 00:07:44,460
‫Tetapi metode filter, pada gilirannya, tidak mengembalikan apa pun.

156
00:07:44,460 --> 00:07:47,910
‫Jadi, pada titik ini, kita tidak bisa benar-benar memanggil

157
00:07:47,910 --> 00:07:49,630
‫semacam pada objek, kan?

158
00:07:49,630 --> 00:07:51,510
‫Jadi, solusi sederhana untuk

159
00:07:51,510 --> 00:07:55,033
‫itu, dan mungkin Anda pernah melakukannya sebelumnya dalam kode Anda,

160
00:07:56,520 --> 00:07:58,853
‫adalah sekarang kita harus mengembalikan ini.

161
00:08:01,120 --> 00:08:06,103
‫Jadi, kembalikan ini dan ini hanya keseluruhan objek, oke?

162
00:08:07,252 --> 00:08:09,723
‫Dan hal yang sama, kemudian, di bawah sini.

163
00:08:11,790 --> 00:08:13,570
‫Jadi, kembalikan ini.

164
00:08:13,570 --> 00:08:17,360
‫Untuk, sekali lagi, mengembalikan seluruh objek yang, tentu saja, kemudian

165
00:08:17,360 --> 00:08:20,530
‫memiliki akses ke metode lain ini sehingga kita dapat,

166
00:08:20,530 --> 00:08:22,493
‫kemudian, memanggilnya di sana.

167
00:08:23,610 --> 00:08:24,443
‫Baiklah?

168
00:08:25,690 --> 00:08:28,643
‫Jadi, selanjutnya adalah pembatasan.

169
00:08:34,000 --> 00:08:36,150
‫Dan saya akan menyebut yang satu ini limitFields.

170
00:08:39,680 --> 00:08:41,340
‫Dan itu karena semua metode

171
00:08:41,340 --> 00:08:43,710
‫ini akan memiliki kata kerja ini sebagai nama.

172
00:08:43,710 --> 00:08:47,240
‫Jadi filter, sortir, limit, dan paginate akan menjadi

173
00:08:47,240 --> 00:08:48,640
‫yang berikutnya.

174
00:08:49,870 --> 00:08:53,730
‫Jadi, sekali lagi, req. permintaan sekarang ini. queryString dan kueri

175
00:08:57,649 --> 00:09:00,399
‫di sini sekarang ini. pertanyaan.

176
00:09:04,494 --> 00:09:05,327
‫Baiklah?

177
00:09:08,196 --> 00:09:11,196
‫Kembalikan ini dan ini tidak benar.

178
00:09:14,290 --> 00:09:17,123
‫Oke, dan akhirnya, pagination.

179
00:09:18,490 --> 00:09:19,873
‫Salin, komentar.

180
00:09:25,020 --> 00:09:26,413
‫Jadi, buat halaman.

181
00:09:29,770 --> 00:09:31,650
‫Kembalikan ini dan, tentu saja, kita

182
00:09:31,650 --> 00:09:39,187
‫perlu mengganti req. menanyakan ini.

183
00:09:39,187 --> 00:09:39,187
‫string kueri.

184
00:09:39,187 --> 00:09:41,610
‫Dan kemudian di sini, seperti sebelumnya,

185
00:09:41,610 --> 00:09:44,890
‫ini akan menjadi ini. pertanyaan.

186
00:09:44,890 --> 00:09:47,770
‫Dan saya baru menyadari bahwa di atas

187
00:09:47,770 --> 00:09:51,040
‫sana, tepat di metode pertama, kami tidak melakukannya di sini.

188
00:09:51,040 --> 00:09:54,560
‫Jadi, kami hanya mengatakan ini. kueri dan

189
00:09:54,560 --> 00:09:57,080
‫kemudian menambahkan temukan di sana.

190
00:09:57,080 --> 00:09:59,190
‫Tapi kemudian, tentu saja, kita

191
00:09:59,190 --> 00:10:01,700
‫harus benar-benar menyimpannya ke dalam properti kueri ini.

192
00:10:01,700 --> 00:10:03,593
‫Oke, dan jadi, saya lupa itu.

193
00:10:04,650 --> 00:10:06,610
‫Dan kami mendapat beberapa kesalahan di sini.

194
00:10:06,610 --> 00:10:08,280
‫Baiklah, itu tidak terlalu penting

195
00:10:08,280 --> 00:10:09,690
‫di sini saat ini.

196
00:10:09,690 --> 00:10:13,170
‫Atau, sebenarnya, ini karena baris kode di sini

197
00:10:13,170 --> 00:10:15,910
‫sebenarnya dalam metode paginate kami.

198
00:10:15,910 --> 00:10:17,490
‫Jadi mari kita pergi ke sana.

199
00:10:17,490 --> 00:10:19,720
‫Dan, sebenarnya, saya sebenarnya ingin membicarakan hal ini

200
00:10:19,720 --> 00:10:21,210
‫dengan Anda di sini.

201
00:10:21,210 --> 00:10:24,350
‫Karena, jika dipikir-pikir, meminta halaman

202
00:10:24,350 --> 00:10:27,740
‫berikutnya, yang hasilnya nol, sebenarnya bukan kesalahan.

203
00:10:27,740 --> 00:10:30,852
‫Fakta bahwa tidak ada hasil sudah cukup bagi

204
00:10:30,852 --> 00:10:34,900
‫pengguna untuk menyadari bahwa, pada dasarnya, halaman yang diminta tidak

205
00:10:34,900 --> 00:10:36,660
‫berisi data apa pun.

206
00:10:36,660 --> 00:10:39,450
‫Jadi kita tidak benar-benar membutuhkan kesalahan dalam situasi ini.

207
00:10:39,450 --> 00:10:42,933
‫Jadi, saya akan melanjutkan dan menghapus semua kode ini.

208
00:10:43,940 --> 00:10:45,430
‫Oke?

209
00:10:45,430 --> 00:10:47,600
‫Jadi biarkan aku menyimpannya sekarang di sini.

210
00:10:47,600 --> 00:10:49,963
‫Dan sekarang, tentu saja, kesalahannya hilang.

211
00:10:53,800 --> 00:10:56,950
‫Dan di sini, kita juga masih harus terus

212
00:10:56,950 --> 00:10:58,770
‫menambahkan metode lain tersebut.

213
00:10:58,770 --> 00:11:02,577
‫Jadi, limitFields dan . membuat halaman pagi

214
00:11:05,160 --> 00:11:09,360
‫Simpan dan, sekali lagi, ingat bahwa semua rantai ini di

215
00:11:09,360 --> 00:11:12,180
‫sini hanya berfungsi karena setelah memanggil

216
00:11:12,180 --> 00:11:15,420
‫masing-masing metode ini, kami selalu mengembalikan ini.

217
00:11:15,420 --> 00:11:18,800
‫Dan ini adalah objek itu sendiri yang memiliki akses

218
00:11:18,800 --> 00:11:21,410
‫ke masing-masing metode ini di sini,

219
00:11:21,410 --> 00:11:24,640
‫memungkinkan untuk merantainya seperti yang kita miliki di sini.

220
00:11:24,640 --> 00:11:26,860
‫Oke, jadi, rekapnya: Kami

221
00:11:26,860 --> 00:11:31,040
‫sedang membuat objek baru dari kelas fitur API.

222
00:11:31,040 --> 00:11:33,960
‫Di sana, kami mengurai objek kueri

223
00:11:33,960 --> 00:11:37,240
‫dan string kueri yang berasal dari express.

224
00:11:37,240 --> 00:11:38,400
‫Oke?

225
00:11:38,400 --> 00:11:41,180
‫Kemudian, di masing-masing dari empat metode di sini

226
00:11:41,180 --> 00:11:44,400
‫yang kita panggil satu demi satu, kita, pada dasarnya, memanipulasi kueri.

227
00:11:44,400 --> 00:11:48,010
‫Kami terus menambahkan lebih banyak metode seperti yang

228
00:11:48,010 --> 00:11:52,160
‫telah kami lakukan di sini sebelum kami melakukan refactoring ini, kan.

229
00:11:52,160 --> 00:11:55,900
‫Jadi, kami terus menambahkan hal-hal ke kueri di sini sampai

230
00:11:55,900 --> 00:11:59,040
‫akhir, dan kemudian, pada akhirnya, kami hanya menunggu

231
00:11:59,040 --> 00:12:02,070
‫hasil kueri itu sehingga dapat kembali dengan semua

232
00:12:02,070 --> 00:12:04,210
‫dokumen yang dipilih, oke?

233
00:12:04,210 --> 00:12:06,580
‫Dan kueri itu sekarang tinggal di fitur

234
00:12:06,580 --> 00:12:08,640
‫yang merupakan objek ini di sini.

235
00:12:08,640 --> 00:12:10,123
‫Jadi fitur. pertanyaan.

236
00:12:11,330 --> 00:12:13,620
‫Oke, saya harap itu masuk akal.

237
00:12:13,620 --> 00:12:17,960
‫Jadi, sebelum kita melakukan hal lain, mari kembali ke

238
00:12:17,960 --> 00:12:20,090
‫Postman dan benar-benar mencobanya.

239
00:12:20,090 --> 00:12:23,500
‫Dan kita bisa mencobanya di sini dengan rute Top-5-murah

240
00:12:23,500 --> 00:12:25,650
‫ini karena sebenarnya, di

241
00:12:25,650 --> 00:12:29,030
‫balik layar, menggunakan semua fitur API ini, kan.

242
00:12:29,030 --> 00:12:32,240
‫Jadi, jika saya mengirimnya, itu masih berfungsi.

243
00:12:32,240 --> 00:12:33,763
‫Jadi itu fantastis.

244
00:12:34,730 --> 00:12:38,823
‫Jadi mari kita tutup dan biarkan saya menyimpannya di sini.

245
00:12:40,490 --> 00:12:44,453
‫Jadi, Dapatkan Lima Wisata Murah Teratas.

246
00:12:49,220 --> 00:12:51,370
‫Dan ya, saya akan meninggalkannya di sana pada akhirnya.

247
00:12:51,370 --> 00:12:53,763
‫Dan sekarang, di sini, mari kita lakukan beberapa pengujian.

248
00:12:54,790 --> 00:12:58,373
‫Misalnya, hapus pengurutan, biarkan saya meninggalkan batas.

249
00:12:59,570 --> 00:13:02,260
‫Kesulitan, durasi, harga.

250
00:13:02,260 --> 00:13:04,170
‫Jadi, saya akan meninggalkan semua ini

251
00:13:04,170 --> 00:13:06,620
‫di sini hanya untuk melihat apakah itu masih berfungsi.

252
00:13:06,620 --> 00:13:10,590
‫Dan sepertinya semuanya masih berfungsi, kan.

253
00:13:10,590 --> 00:13:13,110
‫Jadi ini adalah hasil yang sama persis

254
00:13:13,110 --> 00:13:15,500
‫yang kami dapatkan sebelum refactoring kami.

255
00:13:15,500 --> 00:13:17,320
‫Jadi, bagus, sempurna.

256
00:13:17,320 --> 00:13:20,530
‫Itu berhasil dan, mari, sekarang, benar-benar menghapus semua

257
00:13:20,530 --> 00:13:23,950
‫kode ini dari sini yang membuat pengendali rute

258
00:13:23,950 --> 00:13:26,410
‫kita jauh lebih bersih, bukan?

259
00:13:26,410 --> 00:13:30,840
‫Jadi, itu jauh lebih baik, sungguh, ini siang dan malam.

260
00:13:30,840 --> 00:13:31,800
‫Oke?

261
00:13:31,800 --> 00:13:34,210
‫Sekarang, langkah selanjutnya adalah benar-benar

262
00:13:34,210 --> 00:13:38,500
‫melanjutkan dan mengambil semua kode ini, memotongnya dan memasukkannya ke

263
00:13:38,500 --> 00:13:41,700
‫dalam file baru, jadi modul baru, pada dasarnya.

264
00:13:41,700 --> 00:13:44,720
‫Oke, dan untuk itu, saya akan membuat folder baru di sini

265
00:13:44,720 --> 00:13:46,563
‫yang akan saya beri nama Utils.

266
00:13:47,420 --> 00:13:49,713
‫Jadi itu berdiri, pada dasarnya, untuk utilitas.

267
00:13:51,010 --> 00:13:53,850
‫Dan saya akan menambahkan beberapa hal di

268
00:13:53,850 --> 00:13:55,503
‫sini selama sisa kursus.

269
00:13:57,060 --> 00:13:57,893
‫Oke?

270
00:13:57,893 --> 00:14:00,050
‫Jadi yang

271
00:14:00,050 --> 00:14:05,050
‫ini akan disebut APIFeatures. js dan dengan huruf besar F di sini.

272
00:14:09,430 --> 00:14:10,263
‫Baiklah?

273
00:14:10,263 --> 00:14:13,621
‫Jadi, inilah kelas kami dan, pada akhirnya,

274
00:14:13,621 --> 00:14:17,823
‫kami membuat modul. ekspor kelas ini.

275
00:14:20,040 --> 00:14:21,800
‫Jadi, tidak ada yang baru saat ini.

276
00:14:21,800 --> 00:14:24,140
‫Simpan, tutup, dan

277
00:14:24,140 --> 00:14:27,073
‫sekarang, di sini, kita dapat memintanya.

278
00:14:28,147 --> 00:14:30,730
‫Const APIFeatures kemudian membutuhkan.

279
00:14:35,980 --> 00:14:38,490
‫Kemudian kita perlu memindahkan satu

280
00:14:38,490 --> 00:14:41,613
‫folder ke atas, lalu ke Utils dan APIFeatures.

281
00:14:43,110 --> 00:14:44,210
‫Oke?

282
00:14:44,210 --> 00:14:45,313
‫Satu tes lagi.

283
00:14:48,010 --> 00:14:51,000
‫Dan itu membutuhkan waktu, dan ini dia.

284
00:14:51,000 --> 00:14:53,760
‫Indah, itu benar-benar indah.

285
00:14:53,760 --> 00:14:57,720
‫Sekarang, jika kita membuat sumber daya lain lagi, misalnya,

286
00:14:57,720 --> 00:15:00,280
‫untuk pengguna, akan sangat mudah untuk

287
00:15:00,280 --> 00:15:02,630
‫memasukkan fungsi yang sama ini.

288
00:15:02,630 --> 00:15:06,110
‫Yang harus kita lakukan adalah meminta file ini dan kemudian, pada

289
00:15:06,110 --> 00:15:08,680
‫dasarnya, melakukan hal yang sama seperti di sini.

290
00:15:08,680 --> 00:15:11,000
‫Atau mungkin, dalam hal ini, kita bahkan

291
00:15:11,000 --> 00:15:14,040
‫tidak ingin memiliki kemampuan penyortiran ini atau kita tidak

292
00:15:14,040 --> 00:15:17,140
‫ingin memiliki kemampuan penyaringan dan kemudian, yang harus kita

293
00:15:17,140 --> 00:15:19,440
‫lakukan hanyalah mengambil baris kode ini.

294
00:15:19,440 --> 00:15:21,680
‫Dan kemudian, seperti sulap, itu hanya

295
00:15:21,680 --> 00:15:23,280
‫akan melakukan tiga

296
00:15:23,280 --> 00:15:25,810
‫fungsi ini atau tiga fitur ini, oke.

297
00:15:25,810 --> 00:15:27,890
‫Jadi, itu sangat bagus.

298
00:15:27,890 --> 00:15:29,630
‫Saya harap Anda dapat melihat

299
00:15:29,630 --> 00:15:33,353
‫nilai dari ini dan, ya, saya sangat senang dengan hasil ini.

