
Node.js Notları
Node.js Nedir?
Node.js, Chrome V8 JavaScript Engine'i temel alan bir JavaScript çalışma ortamıdır. Bu çalışma ortamı sayesinde Javascript kodlarını kullanmak için tarayıcı kısıtlamalarına maruz kalmıyoruz. Özetle Node.JS tarayıcılara ihtiyaç duymadan her yerde çalışabilir.
Tarihçesi
Node.js'in ilk sunumu Ryan Dahl tarafından JSCONF 2009 yılında yapıldı. Bu gelişme ile beraber tarayıcı engelinden kurtulan Javascript, front-end'in yanı sıra back-end tarafında da kullanılan en popüler programlama dili olmuştur.
Node.js Nasıl Çalışır?
Event-Driven:
Node.js event-driven (olay odaklı) çalışır. Tek thread kullanır yani aynı anda sadece bir işlem yapabilir. Bu nedenle Node.js kendisinden istenilen işleri bir olay döngüsünün içerisinde değerlendirir.
Non-Blocking:
Node.js non-blocking (engelemeyen) çalışır. Node.js işlem sırasına koyduğu bir olayın tamamlanmasını beklemeden diğer olayı işleme alabilir, bunun sonucu olarak Node.js iş akışını engellemez.
Asynchronous:
Node.js (asenkron) çalışır. Asenkron çalışmada kod akışı yukarıdan aşağıya ilerlemez yani işlemler birbirini beklemez. Bu sayede işlem sırası olaya göre belirlenebilir.
********
Node.js çalışma mantığı üzerine akılda daha iyi kalması için sıkça kullanılan bir benzetmeden bahsedelim:
Çalışma ortamımızın bir restoran olduğunu düşünelim ve bu restoranımızda tek başına çalışan aynı anda tek bir iş yapabilecek single thread bir garson arkadaşımız olsun. Bu garson arkadaşımız bir masadan sipariş aldıktan sonra orada beklemez değil mi? İlgili siparişi mutfak tarafında bildirdikten sonra başka masalara bakabilir non blocking. Başka masadan da sipariş aldıktan sonra bir diğer masayı düzenleyebileceği gibi olay sırasına göre yeni müşterileri de karşılayabilir event-driven.
Kaynak: Node.js ile Back-End Patikası