Node.js, tarayıcı dışında da JavaScript çalıştırmamıza olanak tanıyan, açık kaynaklı, sunucu taraflı (backend) bir çalıştırma ortamıdır. Yani Node.js sayesinde JavaScript yalnızca web sitelerinin “ön yüzünde” değil, sunucu tarafında da kullanılabilir.
Node.js, Google Chrome’un V8 JavaScript motoru üzerine kurulmuştur ve olay odaklı, asenkron (eşzamansız) yapısıyla yüksek performanslı web uygulamaları geliştirmeyi mümkün kılar.
temel özellikler:
- Asenkron (non-blocking) I/O: Çok sayıda isteği aynı anda işler, bu da yüksek ölçeklenebilirlik sağlar.
- Tek iş parçacığı (single-threaded) ile yüksek performans: Diğer sunucu dilleri çoklu iş parçacığı kullanırken Node.js, olay döngüsü (event loop) sayesinde tek thread ile çok iş yapar.
- NPM (Node Package Manager): Node.js’in paket yöneticisidir. 2 milyondan fazla modül barındırır.
- Çapraz platform: Windows, macOS ve Linux üzerinde çalışabilir.
kullanım alanları:
- Gerçek zamanlı uygulamalar: Sohbet uygulamaları, canlı yayınlar
- API sunucuları: RESTful ve GraphQL API’ler
- Tek sayfa uygulamalar (SPA): React, Angular gibi frontend framework’leriyle birlikte
- Oyun sunucuları: Düşük gecikme gerektiren multiplayer sistemler
- CLI araçları: Komut satırı uygulamaları
- Dosya işleme, otomasyon, web scraping gibi arka plan işleri
popüler kullanılan kütüphaneleri:
- Express.js: En yaygın web sunucu çatısı
- Socket.io: Gerçek zamanlı haberleşme (örneğin canlı sohbet)
- Mongoose: MongoDB için ODM (Object Data Modeling)
- Axios / node-fetch: HTTP istekleri için
- dotenv: Ortam değişkenlerini yönetmek için
kimler kullanır?
- Netflix
- Uber
- PayPal
- NASANode.js, hem girişimciler hem de büyük kurumsal yapılar tarafından yüksek performanslı sistemler geliştirmek için tercih edilir.
avantajları:
- Yüksek performans
- JavaScript bilen biri için ekstra dil öğrenmeye gerek yok
- Geniş topluluk ve bol kaynak
- Gerçek zamanlı veri işleme için çok uygun
dezavantajları:
- CPU ağırlıklı işlemler için uygun değildir (örnek: video işleme)
- Tek iş parçacıklı olması bazen sınır olabilir
Özetle:
Node.js, JavaScript bilgisi olan geliştiricilerin hızlı, hafif ve ölçeklenebilir sunucu uygulamaları oluşturmasını sağlar. Modern web uygulamalarının arkasında sıklıkla Node.js yer alır.