‫Instruktur: Dalam video ini
‫dan video berikutnya kita akan menyelami bagian
‫penting lain dari arsitektur Node JS dengan
‫event JS dan arsitektur event-driven.
‫Jadi sebagian besar modul inti Node, seperti
‫yang telah kita gunakan, seperti HTTP, Sistem File, dan Timer dibangun di
‫sekitar arsitektur yang digerakkan oleh peristiwa, dan tentu saja
‫kita juga dapat menggunakan arsitektur ini
‫untuk keuntungan kita dalam kode kita sendiri.
‫Dan konsepnya sebenarnya cukup sederhana.
‫Jadi, di Node, ada objek tertentu yang
‫disebut penghasil peristiwa yang memancarkan peristiwa bernama
‫segera setelah sesuatu yang penting terjadi di aplikasi, seperti
‫permintaan yang mengenai server, atau timer yang kedaluwarsa, atau file
‫yang selesai untuk dibaca.
‫Event-event ini kemudian dapat diambil oleh event listener
‫yang kami atur oleh developer, yang
‫akan mengaktifkan fungsi callback yang dilampirkan ke setiap listener, oke.
‫Jadi sekali lagi, di satu sisi, kita memiliki
‫pemancar acara, dan di sisi lain pendengar acara yang akan
‫bereaksi terhadap peristiwa yang dipancarkan dengan memanggil fungsi panggilan balik.
‫Sederhana, bukan?
‫Dan mungkin cara terbaik untuk memahami ini
‫adalah dengan melihat sebuah contoh.
‫Jadi mari kita pahami secara singkat bagaimana
‫Node menggunakan arsitektur yang digerakkan oleh peristiwa untuk menangani
‫permintaan server dalam modul HTTP yang telah kita gunakan di bagian lain.
‫Jadi ketika kita ingin membuat server,
‫kita menggunakan metode
‫Create Server dan menyimpannya ke dalam Server Variable.
‫Implementasi ini di sini sedikit berbeda
‫dari apa yang kami lakukan sebelumnya, tetapi cara kerjanya persis sama.
‫Bagaimanapun, server ini. pada metode adalah bagaimana
‫kita benar-benar membuat pendengar, dan dalam hal ini untuk acara "permintaan".
‫Jadi katakanlah kita menjalankan
‫server kita, dan permintaan baru dibuat.
‫Server bertindak sebagai emitor, dan secara otomatis
‫akan memancarkan peristiwa yang disebut "permintaan" setiap kali
‫permintaan mengenai server.
‫Sederhana, bukan?
‫Kemudian, karena kita sudah memiliki listener
‫yang disiapkan untuk kejadian persis ini, fungsi callback yang kita
‫lampirkan ke listener ini akan secara otomatis dipanggil.
‫Dan fungsi semacam ini sudah kita ketahui
‫sebelumnya, itu hanya akan mengirim beberapa data kembali ke klien.
‫Sekarang, ia bekerja dengan cara ini karena di
‫balik layar server sebenarnya adalah turunan dari kelas
‫Node JS EventEmitter, jadi ia mewarisi semua
‫logika pemancar dan pendengaran peristiwa ini dari kelas EventEmitter
‫itu, dan jangan khawatir, kita akan menggunakan
‫semuanya baik-baik saja di video berikutnya, sehingga Anda
‫menjadi terbiasa dengan semua logika ini.
‫Sekarang, hanya untuk menyelesaikan kuliah ini,
‫saya percaya penting untuk menyebutkan bahwa logika EventEmitter ini
‫disebut Pola Pengamat dalam pemrograman Javascript secara umum,
‫dan itu pola yang cukup populer dengan banyak
‫kasus yang digunakan.
‫Jadi idenya adalah saya menempatkan
‫seorang pengamat, dalam hal ini pendengar acara, yang
‫terus menunggu, terus mengamati subjek yang pada akhirnya
‫akan memancarkan acara yang ditunggu-tunggu oleh pendengar.
‫Dan kebalikan dari pola ini hanyalah fungsi yang
‫memanggil fungsi lain, yang sebenarnya lebih
‫sering kita lakukan, bukan?
‫Tetapi pola pengamat
‫telah dirancang untuk bereaksi daripada memanggil.
‫Dan itu karena ada manfaat besar
‫menggunakan arsitektur ini, yaitu fakta bahwa
‫semuanya lebih terpisah.
‫Kami tidak memiliki, misalnya, fungsi dari modul
‫Sistem File yang memanggil fungsi dari modul HTTP karena
‫itu akan menjadi kekacauan besar.
‫Sebagai gantinya, modul-modul ini dipisahkan dengan baik dan
‫mandiri, masing-masing memancarkan peristiwa yang dapat ditanggapi
‫oleh fungsi lain, bahkan jika mereka berasal
‫dari modul lain.
‫Juga, menggunakan arsitektur yang digerakkan oleh peristiwa
‫membuatnya jauh lebih mudah untuk bereaksi beberapa kali terhadap
‫peristiwa yang sama.
‫Yang harus kita lakukan adalah menyiapkan banyak pendengar, bukan?
‫Oke dan itu adalah arsitektur event-driven Node
‫secara singkat.
‫Dan jangan khawatir jika ini tampak terlalu teoretis,
‫Anda akan melihat logika ini digunakan
‫dalam banyak situasi sepanjang kursus, mulai dari video berikutnya.