PENGERTIAN NODE JS
Sebagai runtime JavaScript berbasis peristiwa asinkron, Node.js dirancang untuk membangun aplikasi jaringan yang dapat diskalakan. Dalam contoh "hello world" berikut, banyak koneksi dapat ditangani secara bersamaan. Setelah setiap koneksi, callback diaktifkan, tetapi jika tidak ada pekerjaan yang harus diselesaikan, Node.js akan tidur. const http = membutuhkan ('http'); const hostname = '127.0.0.1'; port const = 3000; const server = http.createServer ((req, res) => { res.statusCode = 200; res.setHeader ('Content-Type', 'text / plain'); res.end ('Hello World'); }); server.listen (port, nama host, () => { console.log (`Server berjalan di http: // $ {hostname}: $ {port} /`); }); Ini berbeda dengan model konkurensi yang lebih umum saat ini, di mana utas OS digunakan. Jaringan berbasis thread relatif tidak efisien dan sangat sulit digunakan. Selain itu, pengguna Node.js bebas dari kekhawatiran proses dead-locking, karena tidak ada kunci. Hampir tidak ada fungsi di Node.js yang secara langsung melakukan I / O, sehingga proses tersebut tidak pernah diblokir. Karena tidak ada yang menghalangi, sistem yang dapat diskalakan sangat masuk akal untuk dikembangkan di Node.js. Jika beberapa dari bahasa ini masih asing, ada artikel lengkap tentang Pencekalan vs. Non-Pencekalan. Node.js memiliki desain yang mirip dan dipengaruhi oleh sistem seperti Ruby Event Machine dan Python's Twisted. Node.js mengambil model acara sedikit lebih jauh. Ini menyajikan event loop sebagai konstruksi runtime, bukan sebagai perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai event-loop. Biasanya, perilaku didefinisikan melalui callback di awal skrip, dan di akhir server dimulai melalui panggilan pemblokiran seperti EventMachine :: run (). Di Node.js, tidak ada panggilan start-the-event-loop seperti itu. Node.js cukup memasuki loop acara setelah menjalankan skrip input. Node.js keluar dari loop peristiwa ketika tidak ada lagi callback untuk dijalankan. Perilaku ini seperti JavaScript browser - event loop disembunyikan dari pengguna. HTTP adalah warga negara kelas satu di Node.js, dirancang dengan mempertimbangkan streaming dan latensi rendah. Ini membuat Node.js cocok untuk fondasi pustaka web atau kerangka kerja. Node.js dirancang tanpa utas tidak berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dibuat dengan menggunakan API child_process.fork () kami, dan dirancang agar mudah untuk diajak berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket di antara proses untuk mengaktifkan load balancing melalui inti Anda.
Posting Komentar untuk "PENGERTIAN NODE JS"