Node.js, Chrome’un V8 JavaScript motoruna dayanan açık kaynaklı bir sunucu tarafı çalışma ortamıdır. JavaScript kullanarak yüksek düzeyde ölçeklenebilir sunucu tarafı uygulaması oluşturmak için olaya dayalı, engelleme yapmayan (zaman uyumsuz) I / O ve çapraz platform çalışma zamanı ortamı sağlar.
Node.js, komut satırı uygulaması, web uygulaması, gerçek zamanlı sohbet uygulaması, REST API sunucusu vb. Farklı uygulama türlerini oluşturmak için kullanılabilir. Ancak, çoğunlukla PHP’ye benzer web sunucuları gibi ağ programları oluşturmak için kullanılır.
Node.js’nin Avantajları
– Node.js, MIT lisansı altında açık kaynaklı bir çerçevedir. (MIT lisansı, Massachusetts Institute of Technology’den (MIT) kaynaklanan ücretsiz bir yazılım lisansıdır.)
– Sunucu tarafı uygulamasının tamamını oluşturmak için JavaScript kullanır.
– Bir uygulamanın ihtiyacına göre diğer modüller dahil edilebilir.
– Varsayılan olarak eşzamansızdır. Bu yüzden diğer çerçevelerden daha hızlı çalışır.
– Windows, MAC veya Linux üzerinde çalışan çapraz platform çerçevesi
Geleneksel web sunucusu modelinde, her istek iş parçacığı havuzundan özel bir iş parçacığı tarafından işlenir. Herhangi bir zamanda iş parçacığı havuzunda iş parçacığı yoksa, istek bir sonraki iş parçacığına kadar bekler. Özel iş parçacığı belirli bir isteği yürütür ve yürütmeyi tamamlayana ve bir yanıt döndürene kadar iş parçacığı havuzuna geri dönmez.
Node.js, geleneksel web sunucusu modeline kıyasla kullanıcı isteklerini farklı işler. Node.js tek bir işlemde çalışır ve uygulama kodu tek bir dizide çalışır ve bu nedenle diğer platformlardan daha az kaynağa ihtiyaç duyar. Web uygulamanıza gelen tüm kullanıcı istekleri tek bir iş parçacığı tarafından ele alınacak ve belirli bir istek için tüm I/O işlerinde veya uzun süre çalışan iş eşzamansız olarak gerçekleştirilecektir. Dolayısıyla, bu tek iş parçacığı isteğin tamamlanmasını beklemek zorunda değildir ve bir sonraki isteği yerine getirmekte özgürdür. Eşzamansız I/O çalışması tamamlandığında, talebi daha da işler ve yanıtı gönderir.
Node.js süreç modeli, birkaç uyarıyla performansı ve ölçeklenebilirliği artırıyor. Node.js, görüntü işleme veya diğer ağır hesaplama işleri gibi CPU yoğun işlemleri gerçekleştiren bir uygulamaya uygun değildir, çünkü bir isteğin işlenmesi zaman alır ve böylece tek iş parçacığını bloke eder.