‫Instruktur: Dalam
‫video ini, kami akan menerapkan halaman pemesanan saya.
‫Jadi, pada dasarnya kita akan membuat halaman
‫bagus yang berisi semua tur yang telah dipesan pengguna.
‫Dan mari kita mulai dengan menambahkan rute baru ke viewRoutes kita.
‫Oke, jadi kita punya saya dan setelah itu
‫buat tur saya.
‫Jadi saya menduplikasi yang ini, tur saya, lalu rute ini juga
‫perlu dilindungi sehingga hanya pengguna yang
‫saat ini masuk
‫yang dapat mengakses halaman ini, tentu saja.
‫Dan kemudian, di viewsController
‫kami, kami akan memiliki pengontrol yang disebut getMyTours.
‫MyTours seperti ini, oke?
‫Dan itu sebenarnya untuk saat
‫ini, jadi mari kita buat pengontrol ini sekarang.
‫Oke, jadi kita punya semua
‫ini, dapatkan tur, dapatkan formulir masuk, dapatkan akun.
‫Jadi mari kita letakkan yang ini di sini juga.
‫Jadi sekarang, yang perlu kita lakukan
‫di sini adalah menemukan semua tur yang telah dipesan pengguna.
‫Jadi, pada dasarnya, pertama-tama kita perlu menemukan semua pemesanan untuk
‫pengguna yang saat ini masuk yang
‫kemudian akan memberi kita banyak ID tur,
‫dan kemudian kita harus menemukan tur dengan ID tersebut.
‫Jadi, pada dasarnya, temukan semua pemesanan dan kemudian
‫temukan tur dengan ID yang dikembalikan.
‫Jadi pada dasarnya ID pemesanan untuk pengguna, bukan?
‫Sekarang, sebagai gantinya, kami juga
‫dapat melakukan populasi virtual pada tur, dan akan
‫sangat bagus jika Anda menerapkan ini
‫sendiri persis seperti yang telah kami lakukan sebelumnya dengan tur dan
‫ulasan, tetapi di sini dalam fungsi
‫ini saya benar-benar ingin untuk menunjukkan kepada Anda
‫bagaimana kita bisa
‫melakukannya secara manual karena saya pikir itu
‫juga penting dan sebenarnya populasi
‫virtual harus bekerja seperti yang akan kita lakukan di sini.
‫Jadi Anda melihat bahwa sebenarnya kami membutuhkan
‫dua kueri untuk benar-benar
‫menemukan tur yang sesuai dengan pemesanan pengguna.
‫Bagaimanapun, sekarang mari kita mulai,
‫jadi mari kita buat variabel untuk semua pemesanan,
‫tunggu dan sekarang saya pikir kami belum memiliki pemesanan di sini, tidak.
‫Jadi Pemesanan di sini, dan pemesananModel.
‫Dan di sini, tentu saja, itu hanya pemesanan, oke.
‫Jadi tunggu Pemesanan. temukan, dan sekarang ingat
‫bahwa setiap dokumen pemesanan memiliki ID pengguna, bukan?
‫Jadi di sini, di Skema,
‫ingat kita memiliki ID tur, ID pengguna,
‫dan kemudian semua data lain ini, jadi
‫apa yang akan kita
‫lakukan sekarang pada dasarnya adalah melakukan kueri berdasarkan ID pengguna, oke?
‫Dan itu akan
‫mengembalikan kita semua tur milik pengguna saat ini, oke?
‫Jadi, bukan yang ini.
‫Jadi tur harus sama dengan req. pengguna. Indo.
‫Lalu di sini async, dan seperti biasa, catchAsync juga.
‫Jadi pemesanan ini sekarang berisi semua dokumen
‫pemesanan untuk pengguna saat ini,
‫tetapi sebenarnya itu hanya memberi kami ID tur.
‫Jadi sekarang kami ingin menemukan tur dengan ID yang dikembalikan.
‫Jadi langkah selanjutnya adalah
‫pada dasarnya membuat larik dari semua
‫ID, dan setelah itu kueri untuk
‫tur yang memiliki salah satu ID ini, oke?
‫Dan ini akan sedikit lebih masuk akal
‫setelah kita benar-benar menerapkan apa yang baru saja saya jelaskan.
‫Jadi tourID sama dengan pemesanan dan sekarang kita akan
‫menggunakan peta untuk membuat
‫array baru berdasarkan fungsi panggilan balik yang
‫satu ini, jadi el
‫saat ini. wisata. Indo.
‫Jadi, apa yang akan dilakukan?
‫Yah, pada dasarnya ini loop melalui seluruh array pemesanan dan pada
‫setiap elemen itu akan mengambil el. wisata.
‫Dan sebenarnya kita tidak perlu
‫ID disini karena tournya sendiri sudah menjadi tour ID kan?
‫Kemudian pada akhirnya, kami memiliki array yang
‫bagus dengan semua ID tur di sini dan itu
‫karena kami menggunakan peta.
‫Oke, dengan memiliki semua ID tur,
‫kita sebenarnya bisa mendapatkan tur yang sesuai dengan ID tersebut.
‫Jadi tunggu Tournya. find dan kami sebenarnya ingin mencari berdasarkan ID, tetapi kami
‫tidak dapat menggunakan . findbyid karena
‫disini kita sebenarnya akan membutuhkan operator baru.
‫Dan operator tersebut, yang
‫saya tidak yakin apakah kita pernah menggunakannya
‫sebelumnya, dipanggil.
‫Jadi, di tourIDs.
‫Jadi pada dasarnya apa
‫yang akan dilakukan alih-alih itu
‫akan memilih semua tur yang memiliki ID yang ada di array tourIDs, oke?
‫Jadi itu cukup
‫mudah, tetapi sangat menyenangkan mengetahui bahwa
‫kita dapat menggunakan operator yang sangat berguna ini di sini, oke?
‫Dan itulah sebenarnya salah satu alasan
‫mengapa saya ingin melakukan ini
‫secara manual daripada hanya melakukan populasi virtual seperti yang kami lakukan sebelumnya.
‫Tapi sekali lagi, alangkah baiknya jika Anda
‫melanjutkan dan benar-benar menerapkannya
‫juga hanya untuk bersenang-senang, lho.
‫Oke, dan dengan ini
‫kami sebenarnya sudah menyiapkan tur kami untuk ditampilkan.
‫Jadi, res. status seperti
‫biasa, dan kemudian membuat mereka, oke?
‫Dan sebenarnya, kita bahkan tidak memerlukan template baru untuk ini.
‫Kami hanya akan menggunakan kembali ikhtisar, oke?
‫Jadi kita akan berakhir
‫dengan halaman yang terlihat sangat mirip
‫dengan ikhtisar, tetapi hanya dengan tur yang telah dipesan pengguna.
‫Jadi, di sini dan untuk mendapatkan
‫gambaran, kami kemudian benar-benar lulus di semua tur, oke?
‫Jadi pada dasarnya semuanya.
‫Jadi sekarang, kita akan memiliki sesuatu yang
‫sangat mirip tetapi tentu saja hanya melewati tur yang dipesan.
‫Jadi, di mana itu?
‫Baiklah, jadi judulnya adalah Tur Saya, dan
‫sekali lagi meneruskan variabel tur.
‫Oke dan seharusnya begitu.
‫Sekarang tentu saja kita juga bisa
‫membuat kartu baru untuk toko buku ini dengan
‫beberapa informasi yang
‫lebih relevan tentang setiap pemesanan,
‫tetapi dalam kasus ini itu tidak terlalu penting.
‫Sekarang, kan?
‫Jadi sebenarnya kami sudah siap untuk
‫menguji ini karena kami sudah mengimplementasikan rute di sini sebelumnya.
‫Dan itulah tur-ku.
‫Oh, tapi sebenarnya mari kita atur tautan ini di
‫sini tepat di halaman akun pengguna.
‫Jadi tur saya ini tentu saja
‫harus memiliki tautannya sendiri di sini di akun.
‫Jadi di kolom
‫kiri itu, jadi itu di sini di Pemesanan
‫saya, jadi kita punya yang
‫pertama di sini yang untuk tautannya, ingat.
‫Jadi sekarang, pada dasarnya semuanya tidak menunjukkan ke mana, tetapi sekarang
‫untuk pemesanan kami benar-benar memiliki tautan.
‫Dan itu adalah tur saya.
‫Dan kita juga bisa menyebutnya sebagai pemesanan,
‫tapi itu tidak terlalu penting.
‫Jadi, sekarang kita siap untuk menguji ini.
‫Mari kita benar-benar keluar dari pengguna
‫ini, lalu masuk sebagai pengguna kita yang lain, Laura.
‫Baiklah, jadi mari kita lihat apa yang kita dapatkan di sini
‫dan itu memakan waktu terlalu
‫lama, jadi mari kita lihat kode kita, edit terminal kita di sini.
‫Oke, jadi tidak ada kesalahan di sini, tetapi juga
‫sepertinya tidak ada yang benar-benar terjadi di sini.
‫Jadi rute tur saya di sini bahkan tidak muncul, oke.
‫Sekarang untuk menemukan bug
‫ini, saya sebenarnya harus melakukan beberapa debugging
‫di luar video ini karena itu sangat sulit ditemukan, oke.
‫Pertama, ada kesalahan kecil di sini.
‫Jadi ini di sini seharusnya menjadi pengguna dan bukan tur.
‫Jadi saya menjelaskannya dengan benar saat
‫itu, di mana saya mengatakan bahwa kita perlu
‫memfilter berdasarkan pengguna, jadi tur di mana
‫pengguna sama dengan pengguna yang berasal dari permintaan,
‫tetapi kemudian untuk beberapa alasan saya melakukannya salah di sini, oke?
‫Tapi itu bukan bug utama sebenarnya.
‫Jadi bukan yang mencegah halaman benar-benar memuat.
‫Kesalahan yang menyebabkan hal itu
‫terjadi sebenarnya ada di sini dalam model pemesanan.
‫Dan itu di sini di pra menemukan middleware ini.
‫Dan masalahnya adalah
‫kita tidak pernah memanggil middleware berikutnya di sini, kan?
‫Jadi sekali lagi, ini adalah pra-middleware.
‫Dan semua pra-middlewares memiliki akses ke
‫fungsi berikutnya dan, pada akhir
‫middlewares ini, kita selalu
‫harus memanggil berikutnya.
‫Kalau tidak, proses kita benar-benar macet, oke?
‫Jadi berikan yang menyimpan, benar-benar bisa menutup yang satu ini.
‫Jadi sekarang mari kita coba lagi
‫dan sekarang memang kami memiliki tur saya,
‫tetapi itu kosong karena pengguna ini tidak pernah benar-benar melakukan pemesanan.
‫Jadi, mari kita coba sekarang,
‫dan pesanlah pendaki hutan.
‫Jadi itu seharusnya masih
‫berfungsi, dan memang benar, sangat bagus.
‫Kami memiliki alamat email yang telah diformat sebelumnya
‫dan sekarang, seperti biasa 4242.
‫Jadi kami melakukan pemesanan sebelumnya dengan pengguna ini, tetapi
‫sebelum kami menerapkan model pemesanan dan oleh karena
‫itu kami tidak pernah
‫benar-benar membuat pemesanan di sistem kami.
‫Baiklah, jadi pembayaran diterima
‫dan sekarang mari kita lihat dan ini dia, bagus!
‫Jadi logika yang baru saja kita terapkan
‫benar-benar berfungsi dan satu-satunya
‫masalah adalah hilangnya middleware berikutnya.
‫Dan begitu saja, kami menyelesaikan halaman lain dari
‫situs web dinamis kami.
‫Dan selanjutnya, yang harus dilakukan saat ini
‫adalah menyelesaikan API pemesanan.