‫-: (Laki-laki) Jadi dalam kuliah ini, Anda
‫akan belajar bagaimana menghubungkan beberapa fungsi middleware untuk rute yang sama.
‫Jadi sampai saat ini, setiap kali
‫kami ingin mendefinisikan middleware, kami hanya melewati satu fungsi middleware.
‫Jadi misalnya di sini, untuk menangani permintaan posting ini,
‫kami hanya melewati fungsi middleware ini yang
‫merupakan handler createTour kami.
‫Oke? Dan itulah satu-satunya
‫fungsi yang akan dipanggil setiap kali kita mendapatkan permintaan posting.
‫Benar? Tapi sekarang mari kita katakan
‫bahwa kita ingin benar-benar menjalankan beberapa fungsi middleware.
‫Sekarang Anda mungkin bertanya, "Mengapa kami ingin melakukan itu? ".
‫Yah kita mungkin, misalnya, menjalankan middleware sebelum createTour di
‫sini untuk benar-benar memeriksa data yang masuk ke
‫dalam tubuh.
‫Benar? Jadi sedikit mirip dengan apa yang kita miliki sebelumnya.
‫Jadi kami melakukan pemeriksaan ID middleware ini sebelumnya
‫untuk memeriksa apakah ID tersebut benar-benar valid dan melakukannya
‫di luar penangan rute yang
‫sebenarnya sehingga mereka hanya peduli dengan mendapatkan, memperbarui, atau menghapus
‫tur.
‫Benar? Jadi di sini, dalam contoh khusus dengan
‫post ini, kita mungkin ingin melakukan hal yang sama.
‫Jadi seperti yang saya katakan, kami mungkin ingin memeriksa apakah ada permintaan. sobat sebenarnya berisi
‫data-data yang kita inginkan untuk tour tersebut.
‫Oke? Jadi mari kita lakukan itu.
‫Dan sebenarnya, saya ingin Anda melakukannya sendiri terlebih dahulu.
‫Jadi ini adalah jenis tantangan yang saya ingin Anda selesaikan
‫untuk menggunakan konsep yang telah kita bicarakan
‫berkali-kali pada saat ini dan membuat fungsi middleware
‫Anda sendiri.
‫Jadi izinkan saya menulisnya di sini sebagai komentar.
‫Jadi saya
‫ingin Anda membuat fungsi middleware checkBody dan
‫di sana saya
‫ingin Anda memeriksa apakah body berisi properti nama untuk nama
‫tur dan properti harga.
‫Baiklah? Dan jika tidak, saya ingin Anda mengirim
‫kembali empat ratus kode status.
‫Jika tidak, kirim kembali empat ratus, yang berarti
‫permintaan buruk.
‫Jadi pada dasarnya, permintaan yang tidak valid dari klien,
‫yang dalam hal ini, mencoba membuat tur baru tanpa nama
‫dan tanpa harga properti.
‫Oke! Dan itu sebenarnya.
‫Dan (tertawa) sebenarnya tidak.
‫Jadi saya juga ingin Anda menambahkannya ke tumpukan penangan pos.
‫Pada dasarnya. Oke?
‫Jadi saya ingin Anda menambahkannya di sini.
‫Dan saya akan benar-benar memberitahu Anda
‫bagaimana melakukannya karena kami tidak melakukannya pada saat ini.
‫Jadi sangat mudah. Katakanlah fungsi kita disebut middleware dan
‫yang harus Anda lakukan hanyalah menambahkan fungsi itu
‫di sini sebelum handler createTour yang pada akhirnya akan
‫membuat tur. Oke?
‫Jadi dengan cara ini ketika kita memiliki permintaan posting untuk rute
‫ini, maka middleware ini akan dijalankan terlebih dahulu
‫dan baru kemudian createTour.
‫Oke? Jadi begitulah cara kami menghubungkan dua middleware yang berbeda.
‫Tapi sekarang saya ingin Anda melanjutkan dan membuat middleware ini
‫yang sebenarnya disebut checkBody.
‫Jadi jeda video sekarang dan coba lakukan sendiri.
‫Oke! Jadi saya harap Anda berhasil melakukan
‫itu dan kemudian Anda mengujinya dan semuanya bekerja.
‫Jadi sekarang biarkan saya melanjutkan dan menerapkannya dengan cara saya.
‫Jadi kami memiliki kesalahan ini di sini tetapi jangan khawatir tentang itu.
‫Ini karena middleware ini yang tidak ditentukan.
‫Jadi biarkan saya melakukannya di sini tepat setelah middleware checkID.
‫Jadi ekspor. periksaBody.
‫Kami harus meminta tanggapan dan selanjutnya.
‫Dan sebenarnya cukup sederhana.
‫Jadi jika tidak ada permintaan. tubuh. nama, dan saya
‫pikir itu namanya tetapi mari kita
‫cepat-cepat pergi ke depan dan memeriksanya.
‫Jadi di sini adalah tur sederhana.
‫Ya, dan memang itu disebut 'nama' dan
‫yang lainnya adalah 'harga'.
‫Jadi jika tidak ada request body name atau
‫tidak ada request body. harga baik, dalam
‫hal ini, kami akan, seperti sebelumnya, kembali dari
‫fungsi ini dan mengirim kembali tanggapan.
‫Jadi status di sini adalah ingat: empat ratus tambahkan kemudian
‫beberapa 'json' di mana statusnya gagal.
‫Jadi itu selalu ketika kita memiliki empat ratus kode.
‫Tambahkan kemudian pesan
‫"Nama
‫atau harga tidak ada".
‫Oke? Jadi harga dan nama harus ada di waktu yang sama.
‫Jadi jika harganya tidak ada atau namanya tidak ada maka kami
‫sudah mengirimkan pesan kesalahan ini.
‫Oke? Tetapi jika semuanya benar, maka kami
‫ingin beralih ke middleware berikutnya.
‫Dan itulah yang kami katakan di sini.
‫Dan middleware berikutnya tentu saja createTour.
‫Jadi yang ini.
‫Jadi, mari kita lanjutkan dan tambahkan di sini.
‫Jadi tourController. periksaBody.
‫Baiklah jadi sekarang kesalahannya hilang dan kita harus
‫bisa mengujinya sekarang. Jadi mari kita
‫tutup yang tidak kita minati dan buat tur baru.
‫Jadi saat ini kami memiliki tubuh kami dengan nama, durasi,
‫dan kesulitan tetapi tidak ada harga.
‫Jadi kita sekarang harus mendapatkan kesalahan kita. Benar?
‫Jadi mari kita uji itu. Mengirim. Dan memang, kami memiliki
‫'Nama atau harga yang hilang' dengan empat ratus permintaan buruk kami.
‫Oke? Jadi mari kita menganalisis apa yang terjadi di sini lagi.
‫Jadi permintaan kami mengenai rute ini di sini dan
‫itu adalah permintaan pos. Jadi, ia kemudian menjalankan
‫fungsi middleware ini dan dari fungsi ini, kami kemudian mengirimkan respons
‫eh yang mengatakan bahwa, eh, nama atau harganya tidak ada.
‫Oke? Tapi kalau sekarang tambah harganya... jadi tidak
‫masalah berapa harganya, kirimkan, maka semuanya
‫berfungsi dengan baik dan kami mendapatkan 201 yang dibuat.
‫Jadi apa yang terjadi kali ini? Yah, itu memeriksa tubuh dan kondisi
‫ini tidak benar dan
‫itu disebut middleware berikutnya di tumpukan yang createTour.
‫Jadi itu membuat tur dan mengirim kembali hasilnya
‫dan seperti ini, menyelesaikan siklus permintaan-tanggapan.
‫Benar? Jadi saya harap itu adalah, eh, tantangan kecil yang
‫bagus dan kami akan menggunakan logika
‫semacam ini di sini sepanjang waktu di mana kami menghubungkan
‫beberapa jenis penangan di sini untuk rute yang sama. Jadi misalnya di sini kita bisa memeriksa apakah pengguna
‫tertentu masuk atau apakah
‫dia memiliki hak istimewa, hak akses, bahkan untuk menulis tur baru.
‫Atau benar-benar segala macam hal yang kita inginkan
‫terjadi sebelum tur benar-benar dibuat.
‫Oke? Dan sekali lagi kami melakukannya karena kami ingin mengambil
‫semua logika yang tidak
‫terlalu berkaitan dengan pembuatan sumber daya baru di luar pengendali itu. Sehingga pawang itu hanya benar-benar peduli
‫dengan pekerjaan
‫yang seharusnya dilakukan.