‫Instruktur Pria: Terakhir, sekarang
‫mari kita tangani kesalahan validasi Mongoose.
‫Jadi ingat bagaimana kami mencoba memperbarui tur dengan beberapa data
‫yang tidak valid di
‫sini, dan kemudian mendapatkan kesalahan semacam ini?
‫Oke.
‫Dan mari kita coba menambahkan yang lain.
‫Jadi nama yang sangat pendek, oke?
‫Dan karena itu tidak diperbolehkan, lagi.
‫Oh dan sekarang kami sebenarnya tidak lagi dapat melihat kesalahan
‫kami karena kami sekarang dalam produksi.
‫Dan tentu saja kesalahan ini sekarang
‫tidak ditangani dengan benar.
‫Itu tidak ditandai sebagai operasional.
‫Oleh karena
‫itu, ingatlah bahwa kita mendapatkan kembali pesan kesalahan umum semacam ini.
‫Oke?
‫Jadi hanya untuk melihat kesalahan yang kita miliki sebelumnya, mari
‫kita cepat beralih kembali ke pengembangan.
‫Jadi npm mulai.
‫Dan, kirim sekarang
‫lagi.
‫Dan sekarang kami mendapatkan kembali kesalahan pengembangan kami, oke?
‫Karena sekarang saya
‫ingin menunjukkan kepada Anda bagaimana sebenarnya kami dapat membuat pesan kesalahan yang
‫berarti berdasarkan semua ini, apa yang kami miliki di sini.
‫Sekarang benar.
‫Jadi di dalam
‫kesalahan kami, kami mendapatkan properti kesalahan.
‫Dan properti itu sendiri adalah
‫objek yang memiliki banyak objek di sana,
‫dan masing-masing adalah untuk salah satu bidang yang memiliki kesalahan.
‫Baiklah?
‫Jadi yang pertama di sini adalah untuk durasi tur.
‫Kemudian yang kedua untuk kesulitan,
‫itu juga salah.
‫Dan yang ketiga untuk rating, oke?
‫Jadi masing-masing sebenarnya memiliki pesan kesalahan yang bagus, oke?
‫Jadi pada dasarnya yang kami definisikan dalam skema Mongoose kami.
‫Jadi sekarang kita ingin mengekstrak
‫ketiga pesan ini dari
‫sini, dan memasukkan semuanya ke dalam satu string, oke?
‫Jadi mari kita lanjutkan dan lakukan itu.
‫Oke.
‫Dan lagi,
‫saya akan mulai dengan membuat kondisi di sini.
‫Jadi jika
‫(kesalahan), dan sebenarnya mari kita lihat.
‫Jadi di sini kita memiliki kesalahan.
‫Kami memiliki kesalahan, semuanya.
‫Dan saya perlu menggulir di sini.
‫Dan ya, jadi inilah namanya.
‫Jadi kesalahan. namanya ValidationError, oke?
‫Jadi mari kita ambil itu.
‫Oke.
‫Dan ini lagi, adalah kesalahan yang dibuat oleh Mongoose.
‫Jadi seperti yang
‫pertama, dan mereka terlihat mirip, oke.
‫Sekarang saya tidak ingin ini di sini.
‫Tetapi sebaliknya
‫saya ingin kesalahannya harus sama dengan
‫handleValidationErrorDB, dan mengirimkan kesalahannya, oke?
‫Sekarang mari kita salin ini lagi.
‫Baiklah.
‫Dan mari kita mulai lagi dengan membuat pesan kita.
‫Data masukan tidak valid.
‫Dan kemudian mari kita juga mengembalikan kesalahan.
‫Jadi AppError baru (pesan, 400).
‫Jadi VS Code
‫sudah mengenali bahwa saya ingin mengetik itu saja, oke?
‫Sekarang untuk membuat satu
‫string besar dari semua string dari semua
‫kesalahan, pada dasarnya kita harus mengulang semua
‫objek ini, dan kemudian mengekstrak semua pesan kesalahan ke dalam array baru.
‫Jadi mari kita lihat lagi.
‫Oke.
‫Jadi objek yang memiliki semua objek
‫di dalamnya ada kesalahan, oke?
‫Jadi kami memiliki satu kesalahan untuk nama, satu untuk
‫kesulitan, dan satu untuk peringkat Rata-rata.
‫Jadi pada dasarnya kita akan mengulang objek error ini.
‫Oke?
‫Dan dalam JavaScript, kami menggunakan Object. nilai untuk
‫pada dasarnya mengulang suatu objek.
‫Jadi unsur-unsur suatu benda.
‫Baiklah?
‫Jadi mari kita buat variabel di sini yang disebut error, yang
‫lagi-lagi akan menjadi array dari
‫semua pesan error untuk saat ini,
‫dan sekarang Object. nilai-nilai.
‫Jadi kami ingin nilai err. kesalahan, oke?
‫Dan sekarang lingkari mereka menggunakan peta.
‫Dan kemudian di
‫setiap iterasi, kami hanya akan mengembalikan pesan kesalahan, oke?
‫Jadi hanya untuk memastikan kita semua berada di halaman
‫yang sama di sini, Object. nilai adalah objek ini, oke?
‫Jadi objek ini, dan objek ini, dan yang berikutnya, oke?
‫Jadi ini adalah nilai-nilai.
‫Jadi sekarang
‫yang harus kita lakukan untuk mengekstrak
‫pesan, adalah mengatakan nilai. pesan, oke?
‫Jadi . pesan.
‫Jadi pada dasarnya nilai saat ini, atau
‫katakanlah elemen saat
‫ini, saya suka menggunakan elemen untuk itu,
‫dan kami ingin mengembalikan el. pesan.
‫Oke.
‫Dan sekarang, tentu saja, ini seharusnya tidak ada di sini.
‫Dan Anda mungkin sudah memperhatikan itu.
‫Jadi sebenarnya, di sinilah kita menginginkan ini, oke?
‫Dan sekarang yang
‫perlu kita lakukan adalah memasukkan ini ke dalam string pesan kita, oke?
‫Jadi kesalahan, dan sekarang kita cukup menggabungkan semuanya
‫menjadi satu string menggunakan titik dan kemudian spasi, oke?
‫Dan Anda akan melihat, sebentar lagi, mengapa demikian.
‫Baiklah.
‫Jadi mari kita beralih kembali ke produksi di sini.
‫Jadi jalankan skrip awal produksi kami.
‫Coba lagi sekarang dan mari kita tunggu, dan
‫bam!
‫Ini dia!
‫Jadi data input tidak valid.
‫Kemudian string kesalahan pertama, harus memiliki lebih
‫atau sama dengan 10 karakter.
‫Kemudian yang
‫kedua, dan yang ketiga.
‫Sempurna.
‫Dan itulah mengapa saya menggunakan titik dan spasi, oke?
‫Jadi pada dasarnya memisahkan ketiga string ini
‫dengan titik dan spasi, oke?
‫Dan sekarang ini terlihat seperti pesan kesalahan yang
‫diformat dengan sangat baik yang dapat dipahami semua orang dengan mudah.
‫Benar?
‫Jadi, pada dasarnya kita sudah selesai di sini.
‫Baiklah.
‫Sekarang kita bisa membuat kesalahan ini, menangani kesalahan,
‫lebih banyak lagi yang lengkap.
‫Misalnya, kita dapat menentukan tingkat keparahan kesalahan yang berbeda seperti
‫mengatakan, kesalahan ini tidak begitu
‫penting, kesalahan ini sedang,
‫dan kesalahan ini sangat penting atau bahkan kritis.
‫Dan kami juga dapat mengirim email kepada beberapa
‫administrator tentang kesalahan kritis.
‫Dan sungguh, ada banyak hal yang bisa kita terapkan.
‫Tapi sekali lagi, dalam aplikasi kecil seperti ini, apa yang
‫kita miliki di sini sudah sangat bagus, oke?
‫Jadi ini adalah strategi yang cukup kuat
‫yang telah kami terapkan
‫di sini, dan saya sangat senang dengan itu, oke?
‫Jadi semua logika ini di sini dengan kesalahan operasional
‫yang kami terapkan di
‫sini, jadi itu sudah cukup canggih.
‫Oke?
‫Sekarang jika kita menemukan kesalahan lain yang ingin
‫kita tandai sebagai operasional, maka tentu
‫saja yang harus kita lakukan
‫adalah sesuatu yang mirip dengan yang kita miliki di sini, oke?
‫Jadi pada dasarnya mengimplementasikan fungsi lain untuk yang
‫itu, dan kemudian mengembalikan kesalahan operasional
‫kita sendiri sehingga produksi kesalahan
‫pengiriman dapat benar-benar mengirim kesalahan operasional itu
‫ke klien, bukan?
‫Oke, dan dengan itu,
‫pengontrol kesalahan kami sebenarnya sudah selesai.
‫Tetapi masih ada beberapa kesalahan lain yang
‫perlu kami tangani yang sepenuhnya berada di luar Mongo atau bahkan Express.
‫Dan jadi kami melakukannya di sisa bagian ini.