Node.js (64-bit) 14.13.1
Sebagai runtime JavaScript berbasis peristiwa yang tidak sinkron, Node 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 64 bit akan tidur.
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. Lebih jauh lagi, pengguna Nodej bebas dari kekhawatiran proses dead-lock, karena tidak ada kunci.
Hampir tidak ada fungsi dalam aplikasi yang melakukan I / O secara langsung, sehingga proses tersebut tidak pernah diblokir. Karena tidak ada yang menghalangi, sistem yang dapat diskalakan sangat masuk akal untuk dikembangkan di Node.
Node.js memiliki desain yang mirip dan dipengaruhi oleh, sistem seperti Ruby Event Machine atau Python’s Twisted. Ini membawa model acara sedikit lebih jauh. Ini menyajikan event loop sebagai konstruksi runtime, bukan perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai event-loop.
Biasanya perilaku didefinisikan melalui callback di awal skrip dan di akhir memulai server melalui panggilan pemblokiran seperti EventMachine :: run (). Di Node js, tidak ada panggilan start-the-event-loop seperti itu. Ini hanya memasuki loop acara setelah menjalankan skrip input.
Alat tersebut 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 Nodejs, dirancang dengan mempertimbangkan streaming dan latensi rendah. Ini membuat Node js cocok untuk fondasi pustaka web atau kerangka kerja.
Hanya karena Nodejs dirancang tanpa utas, tidak berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dibuat dengan menggunakan child_process.fork () API, dan dirancang agar mudah untuk 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.