‫Instruktur:
‫Jadi dalam kuliah
‫ini, Anda akan mempelajari cara mudah mendefinisikan parameter
‫langsung di URL, cara membaca
‫parameter ini, dan juga, cara menanggapinya.
‫Nah, yang sebenarnya ingin kita terapkan dalam kuliah
‫ini adalah cara mendapatkan hanya satu tur.
‫Jadi sekarang, kami memiliki titik akhir ini
‫di sini, yang memberi kami
‫semua tur, dan kami ingin memiliki sesuatu seperti ini.
‫Jadi mari kita salin ke permintaan baru untuk saat
‫ini, dan kemudian, kita ingin garis miring, dan kemudian ID tur.
‫Jadi misalnya, katakanlah lima, oke?
‫Jadi, ini seperti yang kita bicarakan
‫di kuliah REST API, di mana
‫saya mengatakan bahwa jika kita mencapai titik akhir ini tanpa ID, jadi seperti
‫ini di sini, maka
‫kita akan mendapatkan semua tur.
‫Tetapi jika kita akan menentukan ID setelah itu, jadi,
‫seperti ini, dan tentu
‫saja itu tidak harus berupa ID,
‫itu bisa berupa pengenal unik apa pun,
‫tetapi dalam kasus ini, cara termudah untuk menerapkannya
‫adalah dengan hanya gunakan ID, oke?
‫Jadi, ini di sini tentu saja
‫variabel, karena bisa lima, tetapi juga bisa apa saja.
‫Jadi ini bagian dari URL di
‫sini, jadi ini di sini, ini adalah variabel, oke?
‫Jadi yang perlu
‫kita lakukan adalah mendefinisikan rute yang dapat menerima variabel.
‫Baiklah, jadi mari kita lakukan itu di sini, dan
‫benar-benar tepat setelah yang ini.
‫Dan saya akan melanjutkan dan menyalinnya,
‫karena Anda sudah tahu cara menulisnya saat ini.
‫Dan, ya.
‫Jadi di sini kita
‫memiliki rute, dan sekarang yang perlu kita lakukan adalah menambahkan variabel itu.
‫Dan itu sangat mudah.
‫Jadi kita punya garis miring lagi, dan
‫kemudian variabelnya, kita definisikan menggunakan titik dua, seperti ini.
‫Dan seperti ini, kami membuat variabel bernama ID.
‫Tentu saja bisa apa
‫saja, seperti var, atau X.
‫Tidak masalah.
‫Tapi yang ini namanya ID, oke?
‫Sekarang kami tidak ingin mengirim kembali sesuatu seperti
‫ini, jadi beri komentar saja.
‫Dan yang saya ingin Anda
‫lihat adalah di
‫console dot log, req dot params.
‫Oke, jadi request dot params adalah tempat semua parameter dari
‫semua variabel yang kita definisikan di sini disimpan, oke?
‫Jadi variabel ini di URL ini disebut parameter, dan sekali
‫lagi, mereka berada di req dot params,
‫tersedia untuk kita gunakan sekarang.
‫Jadi mari kita lihat sekarang dan
‫benar-benar melakukan permintaan ini.
‫Dan untuk saat ini, itu tidak akan
‫melakukan apa-apa, jadi itu tidak akan memberi kita tur
‫nomor lima secara otomatis, tentu saja.
‫Tapi yang ingin
‫saya lakukan sekarang adalah melihat req dot params.
‫Dan memang, di sini kita punya, ID adalah lima.
‫Jadi, request dot params adalah objek yang
‫sangat bagus yang secara otomatis
‫memberikan nilai ke variabel kita, jadi parameter yang kita definisikan.
‫Dan kita sebenarnya bisa mendefinisikan banyak.
‫Jadi kita bisa mengatakan
‫ID, dan kemudian kita bisa mengatakan X, dan kita
‫bisa mengatakan Y, dan kemudian kita, tentu saja, harus mendefinisikan semuanya.
‫Jadi 23
‫dan 45, katakanlah.
‫Kirim orang ini.
‫Dan kemudian, memang, kami
‫memiliki objek dengan ketiga variabel ini di dalamnya.
‫Oke, sekarang jika kita mendefinisikannya seperti ini di
‫URL, kita sebenarnya harus menentukannya.
‫Jadi jika kami tidak memiliki parameter
‫Y, kami akan mengalami
‫kesalahan, karena kami sekarang tidak mencapai rute yang tepat ini, oke?
‫Jadi rute kami sekarang tidak lagi persis seperti
‫ini, tetapi hanya ini.
‫Jadi, ada kesalahan, oke?
‫Masuk akal?
‫Sekarang sebenarnya ada satu hal yang bisa kita
‫lakukan, dan itu adalah parameter opsional.
‫Jadi jika Anda ingin membuat parameter ini opsional, kami
‫hanya menambahkan tanda tanya padanya,
‫dan sekarang, ini opsional, jadi kami tidak perlu lagi menentukannya.
‫Jadi seperti ini.
‫Jadi sekarang kita hanya punya lima, 23, dan kemudian
‫Y masih di sini, tapi tidak terdefinisi,
‫karena sekarang opsional.
‫Baiklah.
‫Tapi mari kita singkirkan semua
‫ini, karena kita hanya benar-benar membutuhkan ID, oke?
‫Jadi sekarang yang
‫perlu kita lakukan adalah benar-benar mendapatkan tur dengan
‫ID ini dari data kita. json, dari file JSON kami, bukan?
‫Jadi pada dasarnya, dari susunan wisata.
‫Dan itu seharusnya tidak terlalu sulit.
‫Jadi
‫katakanlah, const tour
‫sama dengan tur dot find.
‫Dan saya tidak yakin apakah Anda familiar dengan
‫metode find ini di sini.
‫Jadi sekali lagi, ini tidak ada hubungannya dengan Node atau
‫Express, ini hanya fungsi JavaScript biasa yang
‫dapat Anda gunakan pada array.
‫Dan cara kerjanya adalah ini.
‫Jadi di sini, kami melewati fungsi panggilan balik, jadi
‫izinkan saya memulai dengan menulis yang itu.
‫Jadi ID elemen
‫sama dengan req dot
‫params, oke?
‫Jadi pada dasarnya akan mengulang array, dan
‫di setiap iterasi,
‫kita akan memiliki akses ke elemen saat
‫ini, dan kita akan mengembalikan
‫true atau false di setiap iterasi, oke?
‫Sekarang apa yang akan dilakukan metode
‫find adalah pada dasarnya, ia
‫akan membuat array
‫yang hanya berisi elemen di mana perbandingan ini ternyata benar, oke?
‫Dan dalam situasi ini, kami ingin menemukan
‫elemen di mana ID sama dengan
‫yang kami dapatkan dari parameter.
‫Jadi dengan menentukan fungsi panggilan balik ini di
‫sini dengan perbandingan ini, kami akan memastikan
‫bahwa hanya elemen di mana ID sebenarnya sama
‫dengan ID yang ditentukan dalam parameter
‫yang akan dikembalikan dari metode
‫find dan disimpan ke dalam tur, oke?
‫Sebenarnya, ini tidak akan bekerja seperti ini, karena seperti yang
‫Anda lihat di sini,
‫nilai-nilai ini di sini, sebenarnya adalah string, oke?
‫Jadi kita perlu mengubahnya menjadi angka, tapi
‫itu sangat mudah.
‫Yang harus kita
‫lakukan adalah mengatakan, ID sama dengan req dot
‫params dot ID kali satu.
‫Jadi ini adalah trik yang
‫bagus di mana JavaScript, ketika kita mengalikan string yang terlihat seperti
‫angka, ketika kita mengalikannya dengan angka lain,
‫maka string itu akan secara otomatis diubah menjadi angka.
‫Jadi itu adalah trik yang sangat kecil dan bagus yang bisa kita gunakan di sini.
‫Jadi, sekarang, kami sudah menyiapkan tur kami untuk dikirim.
‫Maka data yang ingin kami
‫kirimkan adalah tour sama
‫dengan tour.
‫Atau sebenarnya itu
‫hanya tur, jadi tur harus sama dengan tur, oke?
‫Masuk akal?
‫Jadi mungkin bagian yang paling rumit di sini
‫hanya yang ini, tapi, ya, itu lagi-lagi hanya JavaScript biasa.
‫Jadi saya yakin, atau setidaknya
‫saya harap, Anda sudah
‫terbiasa menggunakan metode array semacam ini, oke?
‫Jadi, kami hanya ingin tur nomor lima.
‫Jadi mari kita lihat apakah itu benar-benar berfungsi.
‫Dan ternyata tidak, jadi mari kita lihat itu.
‫Oh ya, memang di sini kita perlu menggunakan ID tentunya.
‫Jadi tidak req. param
‫INDO.
‫Oke, jadi, coba lagi.
‫Dan sekarang, memang, kami memiliki tur dengan ID lima, oke,
‫dan hanya tur tunggal itu.
‫Mari kita coba nomor
‫dua, misalnya, dan memang ID dua.
‫Tapi sekarang, mari kita coba situasi lain.
‫Mari kita lakukan, ID 23, dan sekarang,
‫kita tidak mendapatkan apa-apa, kan?
‫Dan itu karena tidak ada tur dengan ID 23, tetapi
‫kami masih mengembalikan kode status 200 OK,
‫jadi, itu tidak masuk akal, oke?
‫Jadi mari kita lanjutkan dan ubah itu.
‫Dan apa yang harus kita lakukan di sini?
‫Nah, sebagai solusi yang sangat sederhana, yang
‫dapat kita lakukan adalah memeriksa apakah ID lebih
‫besar dari panjang array tur, dan jika lebih panjang,
‫maka kita dapat
‫mengirim kembali kesalahan 404 yang mengatakan bahwa
‫kita tidak dapat menemukan tur apa pun untuk ID yang diberikan.
‫Jadi mari kita lakukan solusi yang sangat sederhana itu, karena, yah,
‫ini bukan API sebenarnya yang sedang kita bangun
‫saat ini, dan
‫dalam hal ini, tidak masalah
‫untuk menggunakan solusi yang terlalu sederhana seperti itu, karena ini
‫bukan hal nyata yang kita sedang membangun di sini.
‫Kami benar-benar hanya mencoba untuk
‫membiasakan diri dengan cara kerja Express.
‫Dan hal yang sama sebenarnya dapat dikatakan di
‫sini, misalnya, ketika kita...
‫Jadi di sini, di mana kami memposting tur baru,
‫di dunia nyata, kami akan selalu, selalu harus memeriksa apakah input
‫pengguna valid, jadi jika itu
‫tidak mengandung kode berbahaya, atau benar-benar, apa pun
‫yang tidak kami lakukan' t ingin di bungkus kami.
‫Dan lagi, kita akan melakukannya, tentu saja,
‫nanti, tetapi dalam contoh
‫kecil ini, saya benar-benar hanya ingin fokus pada dasar-dasarnya, oke?
‫Jadi mari kita segera menerapkan apa
‫yang baru saja kita katakan, yaitu jika ID lebih besar dari panjang titik
‫tur, jadi misalnya, katakanlah kita memiliki 12 tur dalam larik
‫kita, nah, jika ID-nya kemudian 13, atau 15, atau apa
‫pun, yah, dalam hal ini, ID tidak valid.
‫Jadi, kami katakan kembali, dan itu karena kami
‫ingin keluar dari fungsi saat ini, oke?
‫Dan itulah mengapa kami mengatakan kembali.
‫Kemudian kami mengirim status 404, karena kami
‫tidak dapat menemukan tur apa pun untuk
‫ID itu, dan kemudian respons JSON
‫sederhana dengan status gagal.
‫Jadi gagal adalah apa yang kami kirim setiap kali kami memiliki kode 400.
‫Dan kemudian hanya properti pesan, ID
‫tidak valid.
‫Baiklah.
‫Jadi mari kita uji itu sekarang.
‫Jadi kita punya 23.
‫Dan, memang, 404 tidak ditemukan, ID tidak valid.
‫Jadi itulah yang baru saja kami lakukan,
‫dan, sepertinya berhasil, oke?
‫Solusi lain yang tentu
‫saja dapat kami terapkan
‫di sini juga adalah dengan melakukan
‫tes ini setelah kami melakukan tur di sini.
‫Jadi kami akan mendapatkan ID,
‫kemudian kami akan mencoba mencari tur, dan
‫jika tidak ada tur,
‫maka kami akan mengatakan bahwa ID itu tidak valid.
‫Jadi mari kita komentari yang ini,
‫duplikat, agar kita benar-benar menyimpan kedua solusi di sini.
‫Jadi kita bisa bilang, kalau tidak ada tur, oke?
‫Jadi pada dasarnya, hasilnya
‫di sini, jika tidak ada tur
‫yang ditemukan, maka variabel ini pada dasarnya tidak terdefinisi,
‫dan kita dapat mengujinya di sini, seperti ini.
‫Jadi jika tidak ada tur, jadi jika tur pada dasarnya tidak
‫terdefinisi, maka kami mengirim kembali pesan kesalahan ini.
‫Jadi mari kita uji itu juga.
‫Dan memang, itu memberi kita hasil yang sama.
‫Oke, dan begitu
‫saja, Anda belajar cara menentukan
‫parameter di URL, seperti ini, oke?
‫Kemudian Anda belajar cara membaca parameter
‫ini dari URL, dengan menggunakan req dot params.
‫Nah, dan kemudian kami menggunakan ID itu, jadi parameter itu,
‫untuk menemukan tur dengan ID yang tepat itu.
‫Jadi itulah yang kami lakukan di sini, di baris ini, oke?
‫Jadi itulah tujuan dari video ini,
‫dan sekarang mari kita beralih ke yang berikutnya.