‫Instruktur: Baiklah, jadi sekarang mari kita buat
‫pengguna baru itu, berdasarkan model yang baru saja
‫kita terapkan di video terakhir.
‫Jadi, kami akan melakukan sebagian besar hal yang
‫berhubungan dengan pengguna seperti membuat pengguna baru,
‫memasukkan pengguna, atau memperbarui kata sandi di pengontrol otentikasi.
‫Jadi semua hal yang benar-benar terkait dengan otentikasi, tidak
‫akan berada di pengontrol pengguna yang
‫sebenarnya kita buat
‫sebelumnya, tetapi kita akan membuat pengontrol otentikasi.
‫Jadi semua fungsi yang terkait
‫dengan otentikasi akan masuk ke sini.
‫Dan ini akan sedikit lebih masuk akal nanti,
‫saat kita mulai menggunakan semua fungsi yang akan
‫saya masukkan di sini.
‫Dan sekarang, hal pertama
‫yang perlu kita lakukan, adalah mengimpor
‫pengguna kita, jadi model pengguna kita tentu
‫saja, dan itu naik satu tingkat, kemudian harus dalam model, dan kemudian
‫model pengguna.
‫Baiklah.
‫Jadi, mari buat dan ekspor pengontrol pertama kita.
‫Dan saya akan menyebut ini sebagai pendaftaran.
‫Jadi Anda lihat bahwa saya tidak menyebutnya buat
‫pengguna, seperti yang saya
‫lakukan di pengontrol tur, tetapi sebenarnya
‫saya menyebutnya mendaftar karena itulah nama yang
‫memiliki sedikit arti dalam konteks autentikasi.
‫Jadi ini akan menjadi fungsi async tentunya, karena
‫kita akan melakukan beberapa operasi database.
‫Kemudian request, respond, dan next
‫seperti biasa, dan di sinilah kita membuat pengguna baru.
‫Dan itu sangat mirip dengan apa yang kami lakukan sebelumnya.
‫Jadi kali ini namanya newUser,
‫lalu ingat
‫bagaimana kita membuat dokumen baru berdasarkan model.
‫Jadi kita menggunakan nama model
‫tentunya, yang dalam hal ini adalah
‫User, dan selanjutnya kita menggunakan metode create.
‫Dan kemudian yang
‫perlu kita lakukan adalah memasukkan objek
‫dengan data dari mana pengguna harus dibuat.
‫Dan seperti sebelumnya, data itu sebenarnya ada di req. tubuh.
‫Dan semua ini akan mengembalikan
‫Janji, jadi kita perlu menunggu itu, dan
‫itulah alasan mengapa ini adalah fungsi asinkron.
‫Dan saya melihat bahwa di sini, kita membutuhkan ekspor.
‫Dan sekarang di langkah berikutnya,
‫kami kemudian akan benar-benar mengirim Pengguna baru itu ke klien.
‫Jadi res. status, yaitu 201 untuk dibuat, dan
‫kemudian objek JSON kami.
‫Jadi itu sukses lagi,
‫dan kemudian properti data kami yang lagi disebut
‫amplop di
‫sini, jadi properti yang akan berisi data itu sendiri.
‫Dan datanya sekarang disebut pengguna, sebelumnya
‫disebut tur, jadi yang
‫akan kami kirim ke sini adalah Pengguna baru.
‫Simpan, dan sebelum kita mencobanya,
‫ingatlah bahwa ini adalah fungsi async, jadi
‫kita perlu memikirkan penanganan kesalahan di sini.
‫Jadi apa yang perlu kita lakukan di sini?
‫Nah, kita perlu membungkus seluruh fungsi yang
‫baru saja kita buat ke dalam fungsi catchAsync yang
‫kita buat di bagian terakhir.
‫Jadi ingat bagaimana kita melakukannya di tourController, di mana semua
‫fungsi yang asinkron dibungkus ke
‫dalam fungsi catchAsync ini sehingga kita tidak
‫perlu menulis
‫blok try catch di setiap fungsi di sini.
‫Ingat itu dari bagian terakhir?
‫Jadi sebenarnya saya akan
‫melanjutkan dan menyalin pernyataan persyaratan ini di sini.
‫Jadi terkadang
‫agak malas, tidak ingin menulis kode yang
‫sama berulang-ulang, jadi catchAsync, dan kemudian kita
‫harus menutupnya di sini pada akhirnya.
‫Dan sekarang, yang
‫perlu kita lakukan adalah benar-benar mengimplementasikan
‫rute sehingga handler pendaftaran di sini dapat dipanggil.
‫Jadi mari kita pergi ke
‫userRoutes kita, yang sebenarnya sudah kita buat beberapa waktu sebelumnya, dan
‫kita sudah memiliki beberapa rute di sini.
‫Tapi sebenarnya saya akan membuat yang baru di sini sekarang.
‫Dan seperti yang saya sebutkan di awal video ini,
‫sumber daya pengguna sedikit berbeda dari
‫semua sumber daya lainnya.
‫Sekali lagi, karena itu benar-benar ada hubungannya
‫dengan semua hal otentikasi.
‫Jadi kami memiliki pengontrol yang berbeda
‫untuk itu sehingga authController, nama fungsi juga memiliki beberapa
‫nama yang berbeda,
‫jadi kami sebenarnya juga memiliki rute khusus.
‫Katakanlah router. post, lalu kita
‫akan membuat rute untuk signup, jadi /signup, dan di
‫sinilah kita akan menggunakan fungsi
‫yang baru saja kita buat sebelumnya.
‫Dan tentu saja sebelum
‫kita bisa melakukannya, kita perlu meminta pengontrol otentikasi itu.
‫Jadi mari kita gandakan baris ini
‫di sini dan ganti pengguna di dua tempat, jadi di sini kita memiliki
‫authController kita, dan sekarang mari kita
‫gunakan itu. Daftar.
‫Jadi seperti
‫yang Anda lihat, pendaftaran benar-benar semacam titik akhir khusus.
‫Itu tidak sesuai dengan arsitektur REST
‫yang kita bicarakan sebelumnya, karena dalam hal
‫ini tidak masuk akal.
‫Jadi ingat bagaimana kami mengatakan bahwa dalam
‫beberapa kasus khusus, kami
‫tentu saja dapat membuat titik akhir lain
‫yang tidak 100% sesuai dengan filosofi REST yang pada dasarnya diterapkan di sini.
‫Jadi ini di sini
‫tentu saja mengikuti 100% filosofi REST, di mana nama URL tidak
‫ada hubungannya dengan tindakan yang sebenarnya dilakukan.
‫Sementara di sini, tentu saja, sudah.
‫Jadi nama rutenya signup karena
‫kita sign up user.
‫Dan juga di sini kami telah menerapkan semua
‫warps HTTP yang berbeda ini tetapi
‫di sini untuk mendaftar, kami hanya benar-benar membutuhkan POST.
‫Jadi kami tidak dapat benar-benar mendapatkan data dari pendaftaran, atau
‫kami tidak dapat menambal pendaftaran, jadi tidak memperbaruinya.
‫Tidak masuk akal, jadi dalam hal ini yang ingin
‫kita lakukan hanyalah
‫memiliki rute untuk mendaftar, di
‫mana kita hanya bisa POST data.
‫Karena sekali lagi, masuk
‫akal untuk benar-benar mengirim data ke
‫rute ini, sehingga pengguna baru kemudian dibuat.
‫Dan kita akan memiliki rute yang berbeda mirip
‫dengan ini, seperti untuk login,
‫atau untuk reset password, dan segala macam hal seperti itu.
‫Dan kami juga akan
‫menyimpan rute-rute ini di sini sehingga yang
‫lebih dalam format REST, karena ada juga
‫kemungkinan administrator sistem memperbarui atau
‫menghapus atau mendapatkan semua pengguna berdasarkan ID mereka.
‫Tapi kami akan mengurusnya nanti, untuk saat ini kami
‫hanya ingin mengimplementasikan semua fungsi yang
‫berhubungan dengan otentikasi.
‫Jadi pada dasarnya fungsi-fungsi itu hanya relevan untuk
‫pengguna itu sendiri.
‫Jadi bukan admin yang akan mendaftarkan
‫pengguna, atau bukan admin yang akan memasukkan
‫pengguna, melainkan pengguna itu sendiri
‫yang akan mendaftar sendiri, atau masuk sendiri.
‫Oke, apakah itu masuk akal?
‫Jadi kita harus memiliki semuanya
‫sekarang, sehingga sekarang harus berfungsi saat kita membuat pengguna baru.
‫Jadi ketika kita mendaftar pada dasarnya, untuk aplikasi kita.
‫Jadi mari kita coba sekarang.
‫Mari kita salin URL
‫ini, pengguna, dan kemudian, daftar.
‫Kemudian kita perlu menentukan Tubuh,
‫kita katakan mentah, dan kemudian JSON.
‫Oh dan juga, jangan lupa tentu saja, untuk mengatur yang
‫ini ke POST.
‫Jadi, data apa yang kita butuhkan di sini?
‫Ingat, yang pertama adalah
‫namanya, lalu emailnya, dan saya memasukkan
‫nama saya sendiri di sini, lalu kata sandinya, jadi mari kita lakukan
‫sesuatu di sini, itu tidak terlalu penting.
‫Dan sekali lagi, kita akan berbicara tentang
‫manajemen kata sandi
‫nanti, dan benar di video berikutnya.
‫Jadi sekarang yang ini di sini harus sama.
‫Jadi lulus1234, hanya sebagai ujian.
‫Dan foto ingat tidak diperlukan, jadi
‫saya tidak melakukan itu.
‫Jadi mari kita lihat sekarang.
‫Dan sekarang kita mendapatkan kesalahan
‫ini di sini, dan itu karena saya salah mengeja kata sandi di sini.
‫Oke, jadi itu cara penulisan bahasa Jerman.
‫Dan sekarang benar.
‫Oke, dan memang, kami mendapatkan pengguna baru kami di sini.
‫Sempurna.
‫Sekarang katakanlah kita mencoba melakukan ini dengan GET.
‫Apa yang akan kita dapatkan?
‫Nah, "Rute
‫ini belum ditentukan," karena kita
‫sebenarnya sudah mendefinisikan rute
‫ini di sini, jadi pada dasarnya bagian ini
‫di sini dari rute, jadi izinkan
‫saya menunjukkannya dengan cepat, jadi itu
‫bukan di tourController, tapi di pengontrol pengguna.
‫Jadi pada dasarnya kita memiliki getUser
‫di sini, dan kemudian "Rute ini belum ditentukan. "Jadi itu yang kami dapatkan, tapi tentu
‫saja kami
‫tidak terlalu tertarik dengan itu.
‫Dan sekarang mari kita lanjutkan dan simpan ini di sini, ke
‫Postman sehingga kita dapat dengan mudah menggunakannya kembali.
‫Jadi Daftar.
‫Dan sekarang untuk
‫mengonfirmasi dengan cepat, mari kita buka di
‫Kompas di sini juga, dan lihat saja saat ini kita
‫hanya memiliki tur, jadi mari kita pergi ke sini ke alam,
‫coba muat ulang ini, dan itu mungkin di atas sini, dan seterusnya memang, sekarang kami mendapatkan
‫koleksi pengguna kami di sini.
‫Jadi mari kita buka itu, dan memang, sekarang kita mendapatkan
‫dokumen pertama kita di sini.
‫Jadi user yang baru saja kita buat.
‫Sekarang di sini Anda dapat melihat
‫kata sandi biasa, dan tentu saja itu tidak ideal.
‫Dan tentu saja, itu tidak ideal,
‫jadi dalam aplikasi web,
‫kata sandi tidak boleh disimpan sebagai data biasa dalam database.
‫Jadi ada banyak manajemen kata sandi yang perlu
‫dilakukan di belakang layar, dan itulah yang akan kami
‫lakukan di video berikutnya.