‫Instruktur: Jadi, Mongoose menawarkan pengembang
‫cara yang sangat kuat untuk memvalidasi
‫data yang masuk ke model kami.
‫Jadi, dalam video ini Anda
‫akan mempelajari semua tentang validasi data dengan Mongoose.
‫Sekarang, apa sebenarnya yang dimaksud dengan validasi?
‫Nah, validasi pada dasarnya memeriksa apakah nilai yang dimasukkan
‫berada dalam format yang tepat untuk setiap
‫bidang dalam skema dokumen kita, dan juga bahwa
‫nilai tersebut benar-benar telah dimasukkan untuk semua bidang yang diperlukan.
‫Sekarang, di sisi lain, kami juga memiliki sanitasi,
‫yaitu untuk memastikan bahwa data yang dimasukkan pada dasarnya
‫bersih, sehingga tidak ada kode berbahaya yang disuntikkan
‫ke database kami, atau
‫ke dalam aplikasi itu sendiri.
‫Jadi, pada langkah itu kita menghapus karakter yang
‫tidak diinginkan, atau bahkan kode, dari data input, oke?
‫Dan ini sebenarnya adalah langkah
‫penting, seperti, standar emas dalam pengembangan back-end.
‫Untuk tidak pernah menerima data input yang
‫berasal dari pengguna apa adanya.
‫Jadi, kita harus selalu membersihkan data yang masuk itu.
‫Tapi, bagaimanapun, saya akan meninggalkan sanitasi
‫data untuk bagian keamanan kursus,
‫sehingga dalam kuliah
‫ini kita bisa fokus sepenuhnya pada validasi data.
‫Dan kami melakukan validasi data ini
‫di sini pada model.
‫Dan itu, sekali lagi, karena filosofi model
‫gemuk dan pengontrol
‫tipis, yang menjadikan model tempat
‫yang sempurna untuk melakukan validasi, bukan?
‫Dan, faktanya, Mongoose sudah dilengkapi dengan banyak
‫alat validasi di luar kotak.
‫Jadi, sekarang mari kita lakukan validasi data di sini.
‫Dan sebenarnya, kami sudah melakukannya.
‫Jadi, ketika kami menggunakan persyaratan ini di sini, itu
‫sebenarnya sudah menjadi validator data bawaan, oke?
‫Jadi Anda melihat bahwa kami menggunakan validator seperti yang
‫diperlukan di sini dalam opsi jenis skema.
‫Dan diperlukan sebenarnya tersedia untuk semua tipe data.
‫Jadi, bukan hanya string, tapi benar-benar segalanya.
‫Angka, Boolean, tanggal, atau benar-benar, jenis apa
‫pun yang Anda gunakan.
‫Kemudian kami juga memiliki keunikan di sini,
‫tetapi harap dicatat, bahwa ini sebenarnya, secara teknis, bukan validator.
‫Itu masih akan
‫menghasilkan kesalahan ketika kita memiliki
‫nama duplikat, tetapi sekali lagi, ini bukan validator, oke?
‫Tapi, yang dibutuhkan adalah validator, jadi saya
‫akan menunjukkan kepada Anda sekarang satu
‫lagi yang khusus hanya untuk
‫string, yang disebut max length dan juga min length.
‫Jadi, kami memiliki
‫panjang maksimum dan seperti namanya, kami menggunakan ini
‫untuk menentukan panjang maksimum yang dapat dimiliki sebuah string.
‫Dan jika lebih lama dari
‫itu, ya, itu akan menghasilkan kesalahan, oke?
‫Jadi, mari kita lakukan seperti yang kita lakukan
‫sebelumnya dengan diperlukan, di mana kita menentukan sebuah array, dan kemudian menetapkan nilainya.
‫Jadi, katakanlah kita menginginkan 40 sebagai panjang string maksimum,
‫dan kemudian, kita menambahkan kesalahan setelah itu.
‫Jadi, pada dasarnya, pesan kesalahan yang kita dapatkan.
‫Jadi, nama tur harus memiliki kurang atau
‫sama dengan 40 karakter.
‫Oke, jadi, itu panjang maksimalnya, dan
‫kita juga punya panjang min.
‫Baiklah, jadi mari kita atur satu menjadi 10,
‫jadi nama tur harus memiliki lebih atau sama dengan 10 karakter.
‫Oke, jadi seperti ini kita punya dua validator yang
‫sebenarnya hanya tersedia di string, oke?
‫Dan, jadi sekarang mari kita lanjutkan dan coba itu.
‫Jadi, saya akan membuat tur baru di sini.
‫Dan, ini bukan tur rahasia,
‫tapi kemudian di sini sisanya tidak masalah.
‫Saya sebut saja Test Tour ini, dan mari kita
‫lihat berapa banyak karakter yang kita miliki,
‫jadi empat tambah satu, tambah empat, jadi
‫kita hanya memiliki sembilan karakter.
‫Jadi, kita sekarang harus berharap untuk benar-benar mendapatkan kesalahan.
‫Jadi, mari kita coba.
‫Dan, memang, nama tur harus
‫memiliki lebih dari atau sama dengan 10 karakter.
‫Bagus, tapi sekarang bagaimana dengan memperbarui tur?
‫Jadi, mari kita dapatkan salah satunya di sini.
‫Jadi, kami memiliki tur uji dua di sini, jadi mari
‫kita coba perbarui yang ini.
‫Jadi, kami pergi ke rute tur pembaruan kami.
‫Dan sekarang mari kita di sini, ubah nama menjadi Test, kirim
‫permintaan, dan, kita mendapatkan kesalahan yang sama.
‫Sekarang, ini hanya berfungsi karena
‫pengaturan yang kami atur
‫kembali, ketika kami menerapkan penangan pembaruan ini.
‫Jadi, izinkan saya segera menunjukkannya kepada Anda di pengontrol tur.
‫Hapus dan perbarui, dan karena opsi
‫ini jalankanValidators, setel ke
‫true sehingga validator dijalankan lagi.
‫Jika saya mengaturnya sekarang
‫ke false, maka Luwak harus dengan senang hati menerima nama ini.
‫Dan memang, itu benar, baiklah.
‫Jadi, mari kita kembalikan ke sesuatu
‫yang lebih
‫lama, tidak masalah, oke, dan jika saya mengembalikannya
‫ke true, maka itu tidak
‫boleh menerimanya, dan memang, kita mendapatkan kesalahan kita kembali, oke?
‫Jadi, hanya ingin
‫cepat menunjukkan fakta pengaturan itu.
‫Baiklah, dan, ya, ini sekarang berfungsi.
‫Mari kita coba beberapa validator lainnya di sini.
‫Misalnya, sekarang tentang angka.
‫Jadi, mari kita pergi ke sini untuk peringkat rata-rata.
‫Dan kita tahu bahwa
‫peringkat harus selalu antara satu dan nol, dan kita tahu
‫bahwa peringkat harus selalu antara satu dan lima, oke?
‫Jadi, sangat mirip dengan panjang min dan maks, pada
‫angka kami hanya memiliki min dan maks.
‫Jadi, minimum yang kita inginkan adalah satu, dan
‫sekali lagi pesan kesalahan kita.
‫Jadi, peringkat harus di atas 1. 0, katakanlah.
‫Dan kemudian maksimal adalah lima.
‫Harus di bawah 5. 0, oke, dan mari kita
‫uji yang ini juga.
‫Jadi, membuat tur baru, sebut saja Tur Uji
‫Menakjubkan karena memiliki peringkat rata-rata enam.
‫Oke, jadi mari kita lihat apa yang
‫terjadi kemudian, dan memang, peringkatnya harus di bawah lima.
‫Oke, jadi, itu lagi-lagi tidak akan
‫berhasil, dan tentu saja tidak boleh nol juga.
‫Jadi, itu harus di atas satu, dan
‫tentu saja, dengan empat, itu akan berhasil, dan memang, inilah tur kami.
‫Selanjutnya, saya ingin membatasi nilai kesulitan ini di
‫sini hanya tiga kesulitan.
‫Jadi, mudah, sedang, dan sulit.
‫Dan jika pengguna memasukkan sesuatu yang lain,
‫maka itu tidak akan berhasil.
‫Jadi, mari kita coba.
‫Jadi, validator yang kita gunakan untuk itu disebut enum, oke, jadi,
‫di sini kita bisa melewatkan sebuah
‫array dari nilai-nilai yang pada dasarnya diperbolehkan.
‫Jadi, ada yang mudah, ada yang sedang, dan ada yang sulit.
‫Baiklah, sekarang kami juga ingin menentukan pesan kesalahan kami
‫di sini, tetapi sekarang itu tidak mungkin, kan?
‫Maksud saya, jika kita menambahkan argumen lain
‫di sini, maka itu
‫bukan untuk pesan kesalahan, tentu saja untuk nilai lain yang mungkin, oke?
‫Jadi, solusi yang perlu kita
‫lakukan di sini, adalah membuat objek lain
‫di sini, dan kemudian, benar-benar menentukan bahwa inilah nilainya.
‫Dan kemudian, pesan kami, oke?
‫Jadi, ini sebenarnya cara kerjanya.
‫Notasi ini sebenarnya hanya
‫singkatan untuk objek lengkap di sini, oke?
‫Jadi, kesulitannya adalah: mudah, sedang, atau sulit.
‫Oke, jadi, itu adalah validator yang sangat bagus, sangat berguna yang secara otomatis
‫tersedia di semua string, oke, jadi, jangan coba gunakan
‫yang ini di sini pada angka, misalnya.
‫Ini hanya untuk string.
‫Dan, omong-omong, min dan max ini
‫sebenarnya tidak hanya untuk
‫angka, tapi juga akan bekerja dengan tanggal, oke?
‫Bagaimanapun, sekarang mari kita uji ini juga.
‫Jadi, kita perlu mengubah namanya, dan di
‫sini mari kita masukkan sesuatu
‫yang lain, baiklah, dan memang, kita mendapatkan kesalahan kita.
‫Jika sekarang kita meletakkannya dengan mudah, maka itu berhasil.
‫Oke, dan hanya itu yang ingin saya
‫tunjukkan kepada Anda
‫di kuliah ini, tetapi sebenarnya ada banyak validator lain.
‫Misalnya, pada string Anda memiliki validator kecocokan
‫untuk memeriksa apakah input
‫cocok dengan ekspresi reguler yang diberikan.
‫Tapi, saya percaya bahwa yang baru saja saya tunjukkan di
‫sini adalah validator bawaan yang paling penting.
‫Dan, untuk daftar lengkap semuanya,
‫tentu saja, Anda selalu dapat melihat dokumentasinya.
‫Sekarang kita juga dapat menentukan validator kita sendiri, dan
‫itulah yang akan kita lakukan dengan
‫benar di video berikutnya.