‫Instruktur: Jadi
‫dalam video ini, kita akan terus menerapkan sumber ulasan
‫dan kali ini dengan menerapkan titik
‫akhir untuk mendapatkan semua ulasan dan juga untuk membuat ulasan baru.
‫Jadi pada titik ini, kami pada dasarnya hanya meninjau hal-hal
‫yang telah kami pelajari sebelumnya di bagian sebelumnya.
‫Jadi di video ini, saya punya tantangan lain untuk Anda.
‫Jadi pada dasarnya, saya ingin Anda menerapkan kedua titik akhir ini,
‫jadi satu titik akhir untuk
‫mendapatkan semua ulasan dan satu titik akhir untuk membuat ulasan baru semuanya sendiri.
‫Oke?
‫Jadi buat file
‫pengontrol, lalu di sana buat fungsi
‫pengontrol, dan kemudian buat juga rute di file rute ulasan Anda.
‫Dan kemudian pada akhirnya, buat beberapa ulasan
‫baru dan juga ambil dari database
‫menggunakan dapatkan semua ulasan.
‫Baiklah.
‫Jadi tolong jeda video sekarang dan mulai bekerja.
‫Baiklah.
‫Dan sekarang giliran saya untuk benar-benar menerapkan ini,
‫dan saya mulai dengan fungsi pengontrol.
‫Jadi disini kita
‫buat review Controller dot
‫js maka tentunya kita mulai dengan membutuhkan review.
‫Jadi naik satu level, lalu model, lalu tinjau model.
‫Jadi dapatkan Semua Ulasan, dan kami menggunakan nama
‫yang sama seperti biasa.
‫Benar?
‫Kemudian kita sudah tahu
‫ini akan menjadi fungsi async karena kita akan
‫berurusan dengan
‫database di sini, dan juga kita perlu membungkus seluruh
‫fungsi ini ke dalam catch Async.
‫Jadi tangkap Async, saya pikir itulah namanya.
‫Memerlukan.
‫Baiklah.
‫Dan sekarang mari kita ambil semua ulasan menggunakan menunggu, dan
‫kemudian hanya menemukan sederhana tanpa filter apa pun.
‫Status 200 dan kemudian mengirim kembali ke JSON normal.
‫Status sebagai sukses.
‫Kami juga mendefinisikan
‫properti hasil dengan panjang titik ulasan, dan
‫tentu saja, kemudian data itu sendiri.
‫Berikan simpan di sini dan sekarang ke yang berikutnya.
‫Jadi buat Ulasan.
‫Baiklah.
‫Dan Anda mulai melihat
‫di sini bahwa kami sebenarnya membuat banyak kode duplikat.
‫Jadi semua ini di sini pada
‫dasarnya terlihat sama persis seperti yang terlihat bagi pengguna,
‫dan untuk tur.
‫Benar?
‫Dan sebenarnya kita akan
‫memperbaikinya nanti di bagian ini.
‫Tapi untuk saat ini, saya benar-benar hanya ingin membuat ini berhasil.
‫Oke?
‫Jadi untuk saat ini jangan khawatir tentang menulis semua kode
‫yang terlihat seperti duplikat ini.
‫Oke.
‫Jadi kami menyebutnya di sini Ulasan
‫baru, dan seperti biasa kami menggunakan dot create dengan semua data
‫yang masuk dari badan.
‫Oke?
‫Jadi, sekali lagi jika ada bidang apa pun di badan
‫yang tidak ada dalam
‫skema tinjauan maka mereka akan diabaikan begitu saja.
‫Dan itulah mengapa
‫aman untuk benar-benar melakukannya seperti
‫ini saat membuat sumber daya baru.
‫Baiklah?
‫Bagaimanapun, sekarang mari kita kirimkan kembali ke klien seperti biasa.
‫Jadi dengan status 201 untuk
‫dibuat, dan ulasan harus menjadi Ulasan
‫baru.
‫Baiklah.
‫Sebenarnya tanpa titik dua di sana, titik koma, dan sebagainya ya.
‫Ini semua adalah pengontrol.
‫Sekarang mari kita beralih ke rute.
‫Jadi
‫tinjau Routes dot js.
‫Dan disini
‫tentunya kita mulai dengan membutuhkan controller
‫kita, dan untuk controller dan
‫review Controller dot js.
‫Selanjutnya, kita perlu membuat router kita.
‫Jadi express, dan tentunya kita juga perlu
‫mengimpor express disini.
‫Jadi mari kita lakukan itu sebelum melakukan hal lain.
‫Cepat.
‫Jadi dot Router, dan menurut saya begini cara kerjanya.
‫Dan sekarang
‫router dan tentukan rute
‫kami dan ini lagi pada dasarnya adalah rute ulasan.
‫Oke.
‫Karena ingat bagaimana pada langkah
‫selanjutnya kita sebenarnya
‫akan memasang router ini pada ulasan slash API.
‫Oke?
‫Jadi seperti yang kami lakukan dengan tur dan pengguna.
‫Dan sebenarnya mari kita lakukan itu sebelum kita melakukan hal lain.
‫Oke?
‫Jadi hanya untuk menghilangkan kebingungan
‫yang mungkin Anda miliki.
‫Jadi, mari kita ekspor router dari sini.
‫Oke?
‫Jadi sekarang kita bisa pindah ke
‫app dot js.
‫Dan tentu saja impor router kami di sini.
‫Dan
‫membutuhkan, meninjau rute.
‫Oke?
‫Jadi sekarang kita turun ke
‫sini dan memasang router ini di jalur baru.
‫Dan jalur itu akan seperti yang
‫saya katakan ulasan slash API slash
‫V1.
‫Oke.
‫Dan sekali lagi router ini
‫di sini yang kami tentukan sekarang pada dasarnya adalah
‫middleware yang kami pasang di jalur ini.
‫Oke?
‫Jadi setiap kali ada
‫permintaan dengan url yang dimulai seperti ini maka
‫fungsi middleware di sini pada
‫dasarnya akan dipanggil.
‫Dan begitulah router
‫kami dan di sana hanya
‫rute slash, jadi hanya root yang
‫pada dasarnya akan menjadi ulasan API V1 ini.
‫Oke?
‫Jadi seperti yang kita lakukan sebelum kita dua sumber lainnya.
‫Jadi Tour Model, bukan itu tempat kami bekerja.
‫Kami sedang bekerja di Routes review.
‫Oke.
‫Jadi kami menentukan rute.
‫Sekarang mari kita tentukan metode yang
‫kita tentukan fungsi kita.
‫Jadi kita sudah mendapatkan, dan untuk
‫itu kita gunakan
‫atau kita tulis ulang review Controller dot get All Review
‫Benar?
‫Dan kemudian kami juga memiliki posting
‫untuk membuat Review.
‫Oke?
‫Berikan simpanan.
‫Dan sebenarnya kami hanya ingin pengguna yang
‫diautentikasi untuk dapat memposting ulasan.
‫Dan juga hanya pengguna yang sebenarnya adalah pengguna biasa.
‫Jadi bukan pengurus dan juga bukan pemandu wisata.
‫Oke?
‫Jadi bagaimana kita bisa menerapkan itu?
‫Mari kita ingat bagian otentikasi kita.
‫Jadi kita mulai dengan meminta Controller auth kita.
‫Jadi sekali lagi, controller dan auth Controller.
‫Dan sekarang yang perlu
‫kita lakukan adalah benar-benar menggunakan fungsi middleware
‫yang kita tentukan di sana.
‫Ingat.
‫Jadi pertama kita menggunakan protect middleware, jadi auth Controller
‫dot protect dan
‫ini
‫akan membuat kita melindungi rute ini
‫hanya untuk diakses oleh pengguna yang diautentikasi.
‫Benar?
‫Dan kemudian pada
‫langkah selanjutnya kami mengatakan bahwa kami
‫ingin membatasi rute ini jadi kami menggunakan batasi
‫kami Untuk middleware hanya untuk pengguna dengan peran pengguna.
‫Baiklah?
‫Jadi sekali lagi, kami melakukan ini di sini sebelumnya beberapa kali.
‫Jadi, tidak benar-benar sesuatu yang baru pada saat ini.
‫Oke.
‫Jadi saya pikir kami mengikuti semua langkah.
‫Jadi pertama-tama, kami memiliki model yang memungkinkan kami
‫membuat dokumen baru.
‫Kemudian kami memiliki fungsi Controller kami
‫yang ditentukan di Controller kami untuk mendapatkan semua
‫ulasan dan membuat ulasan.
‫Kemudian, kami menggunakan fungsi Controller atau fungsi
‫handler ini
‫karena Anda juga dapat
‫memanggilnya, untuk membuat beberapa rute baru.
‫Oke?
‫Jadi kami membuat rute untuk mendapatkan
‫ulasan dan memposting ulasan.
‫Dan seperti sebelumnya
‫kami melakukan ini pada dasarnya dalam sub-aplikasi
‫mini yang hanya untuk ulasan.
‫Dan itulah mengapa kami membuat router
‫baru kami yang kemudian kami impor ke aplikasi
‫utama kami dan memasangnya di url ini di mana
‫kami ingin mengakses semua yang terkait dengan ulasan.
‫Baiklah?
‫Jadi, sekarang mari kita benar-benar pergi ke depan dan menguji ini.
‫Jadi saya akan melanjutkan,
‫menyalin ini, dan membuat tab baru di
‫sini
‫dan jadi ini
‫ulasan dan tentu saja posting.
‫Baiklah.
‫Jadi, apa yang sebenarnya perlu kita
‫tentukan untuk memposting ulasan baru?
‫Jadi kita butuh review itu sendiri.
‫Ingat.
‫Jadi katakanlah "tur yang luar
‫biasa" lalu peringkatnya
‫dan saya akan memberikan lima
‫di sini, lalu tur dan ID pengguna.
‫Oke?
‫Jadi sekarang kita perlu mendapatkan ID dari salah satu tur.
‫Oke?
‫Jadi mari kita gunakan tur nyata pertama
‫di sini katakanlah, jadi mari kita gunakan penjelajah laut ini.
‫Baiklah?
‫Jadi,
‫ID penjelajah laut dan
‫sekarang kita tentu
‫juga membutuhkan ID pengguna yang memposting ulasan.
‫Dan kita bisa mendapatkannya
‫di sini dari get all users.
‫Dan sebenarnya kami hanya memiliki satu pengguna
‫yang merupakan pengguna biasa.
‫Jadi Jonas ini di sini dan jadi mari kita dapatkan ID ini.
‫Baiklah?
‫Sekarang perlu diingat bahwa
‫pengguna ini sebenarnya perlu masuk.
‫Oke?
‫Dan sebentar lagi kita akan
‫benar-benar secara otomatis mendapatkan ID pengguna dari pengguna
‫yang sudah login.
‫Ingat kita bisa melakukannya karena middleware pelindung akan
‫menempatkan pengguna pada objek permintaan.
‫Ingat itu?
‫Tapi untuk saat ini, saya ingin membuatnya tetap
‫sederhana di sini, jadi
‫dengan implementasi saat ini kita sebenarnya perlu memberikan ID pengguna juga.
‫Oke?
‫Tapi tetap saja kita harus masuk sebagai pengguna
‫biasa karena kita melindungi rute ini.
‫Ingat itu?
‫Jadi mari kita tutup saja beberapa ini.
‫Oke?
‫Dan login di sini.
‫Dan kami melakukannya sebagai, jadi apa halo dot Jonas di IO
‫jadi halo.
‫Dan kata sandinya mungkin dan saya harap
‫itu masih sama.
‫Dan sebenarnya tidak, mari kita coba kata sandi baru karena saya ingat
‫saya menggunakan kata sandi itu ketika kami mengubah kata sandi.
‫Tetap tidak berfungsi, jadi mari kita
‫buat pengguna baru.
‫Oke?
‫Tentu saja kita bisa melakukan reset password pada saat ini, tapi
‫itu terlalu banyak pekerjaan
‫dan jadi saya hanya akan membuat pengguna
‫baru sehingga lebih mudah hanya untuk mengujinya sekarang.
‫Oke?
‫Jadi mari kita gunakan tes di Jonas dot IO
‫dan nama di sini akan menjadi pengguna tes.
‫Baiklah.
‫Oh, dan kami sudah memiliki alamat email itu di database kami dan
‫itu aneh.
‫Kami memiliki pengguna.
‫Mungkin tidak, kami tidak memperbarui ini dengan benar.
‫Oh, tapi mungkin itu pengguna yang dihapus.
‫Jadi pengguna yang tidak lagi aktif dan
‫karena itu tidak muncul di sini.
‫Jadi mari kita lihat saja di kompas.
‫Dan tentu saja ketika Anda
‫berada dalam mode pengembangan, Anda akan mengalami masalah seperti ini sepanjang waktu.
‫Jadi di sini, uji Jonas, dan seperti yang saya katakan, itu
‫sebenarnya salah satu dari pengguna yang dihapus ini.
‫Jadi aktif disetel ke false.
‫Jadi mari kita coba lagi.
‫Jadi uji pengguna di sini juga.
‫Jadi kirimkan sekarang dan sekarang kita masuk.
‫Jadi sekarang saya menyalin ID dari pengguna baru ini untuk
‫membuat ulasan baru ini.
‫Baiklah?
‫Ayo kirim sekarang,
‫dan tentu saja kami mendapatkan kesalahan Anda tidak
‫masuk karena kami sebenarnya
‫tidak memberikan token web JSON kami.
‫Jadi kita perlu datang ke otorisasi lalu
‫token pembawa, dan tentu
‫saja yang ini.
‫Jadi, jika kita mencobanya sekarang
‫lagi, maka ini dia.
‫Oke.
‫Mari kita buat satu lagi untuk
‫tur lainnya, kali ini
‫untuk,
‫untuk tur berikutnya, untuk Forrest Hiker.
‫Jadi salin ID di sini juga.
‫Ya.
‫Di sini pengguna akan sama, tetapi tur lain.
‫Mari kita beri empat bintang.
‫Dan katakan saja "menyukainya. "Sesuatu yang sangat
‫sederhana dan
‫oke.
‫Simpan ini, dan saya
‫akan membuat folder baru di
‫sini untuk ulasan dan tentu saja
‫ada yang
‫tidak beres di sini.
‫Jadi di mana folder itu?
‫Mm.
‫Tidak ada tempat yang benar-benar jadi mari kita buat saja di sini.
‫Dan kami sebenarnya dapat mengubah nama di sini juga.
‫Jadi
‫buat ulasan baru.
‫Oke.
‫Dan sekarang kami juga ingin mendapatkan semua ulasan.
‫Jadi kita tidak lagi membutuhkan keduanya.
‫Oke dan yang ini benar-benar
‫GET, dan mari kita simpan juga di Review.
‫Dapatkan semua ulasan.
‫Dan itu sudah cukup untuk memulai dan
‫benar-benar melihat semua ulasan kami.
‫Oke, dan ini dia.
‫Mari kita lihat kompas, dan untuk melihat
‫ulasan di sini kita perlu melanjutkan dan
‫memuat ulang seluruh basis data,
‫tetapi sekarang ketika kita datang ke Ulasan di sini
‫kita memang melihat dua ulasan kita yang telah dibuat juga.
‫Oke.
‫Sekarang bagaimana kita membuatnya
‫sehingga kita benar-benar melihat pengguna dan data
‫tur di sini, bukan sekadar ID?
‫Yah, tentu saja kita perlu lagi menggunakan populate.
‫Benar?
‫Dan itulah yang akan kita lakukan
‫di video berikutnya.