Node.js Nedir?
İngilizce: Node.js
Node.js, V8 üzerinde JavaScript'i sunucuda çalıştıran; olay döngüsü ve asenkron I/O ile yoğun bağlantıları yöneten çalışma zamanıdır.
Node.js Nedir?
Node.js, JavaScript’in tarayıcı dışında, özellikle sunucu tarafında çalışmasını sağlayan bir runtime’dır. Google’ın V8 motoru üzerinde çalışır ve dosya sistemi, ağ, süreç yönetimi gibi tarayıcıda bulunmayan yetenekleri JavaScript’e açar.
Node.js’in ayırt edici tarafı olay döngüsü ve asenkron I/O modelidir. Bir istek veritabanından yanıt beklerken thread’i kilitlemek yerine başka işleri işlemeye devam edebilir. Bu model çok sayıda eşzamanlı bağlantı alan API ve gerçek zamanlı uygulamalarda kullanışlıdır.
Node.js ile Neler Yapılır?
- REST veya GraphQL API geliştirme
- WebSocket tabanlı gerçek zamanlı mesajlaşma
- Dosya işleme, entegrasyon ve otomasyon script’leri
- Komut satırı araçları ve build sistemleri
- Server-side rendering veya backend-for-frontend katmanları
Paket ekosistemi npm üzerinden büyür; framework tarafında Express.js, Fastify ve NestJS gibi seçenekler bulunur.
İş Dünyasında Kullanımı
Node.js, frontend ekibinin JavaScript bilgisini backend tarafında da kullanabilmesini sağlar. Bu, küçük ekiplerde API, entegrasyon ve yönetim paneli geliştirme hızını artırabilir.
CPU yoğun görüntü işleme veya ağır hesaplama işleri için Node.js tek başına en iyi seçenek olmayabilir; worker thread, kuyruk veya ayrı servis tasarımı gerekebilir. Dosya yükleme, ödeme callback’i ve webhook gibi I/O ağırlıklı işlerde ise doğru hata yönetimi ve gözlemlenebilirlikle güçlü sonuç verir.
İlgili Terimler
Asenkron programlama, ağ ve dosya gibi beklemeli işleri bloke etmeden çalıştırarak uygulamanın yanıt vermesini sağlar.
Bun (JavaScript Çalışma Zamanı)Bun, JavaScript ve TypeScript için çalışma zamanı, paket yöneticisi, test koşucu ve bundler sunan hızlı araç zinciridir.
Express.jsExpress.js, Node.js üzerinde rota, middleware ve HTTP yanıt yönetimini sadeleştirerek web uygulaması ve API geliştirmeyi hızlandıran framework'tür.
JavaScriptJavaScript, web tarayıcılarında çalışan, etkileşimli web arayüzleri oluşturmak için kullanılan dinamik programlama dilidir.
npmnpm, JavaScript paketlerini kayıt defteri, komut satırı aracı, package.json ve lock dosyalarıyla yöneten Node.js ekosistemidir.
pnpmpnpm, paketleri tek bir içerik adresli depoda saklayıp projelere bağlayarak JavaScript bağımlılıklarını hızlı ve tutarlı yöneten paket yöneticisidir.
WebSocket SunucusuWebSocket sunucusu, çok sayıda istemciyle kalıcı bağlantı tutup gerçek zamanlı mesajları yöneten backend bileşenidir.