Node.js Nedir, Ne İşe Yarar? Kurulum ve Sunucuda 7/24 Çalıştırma
Node.js nedir, ne işe yarar? JavaScript'i sunucuda çalıştıran ortamın nasıl çalıştığı, npm, LTS sürümleri, Ubuntu'ya kurulum ve uygulamayı PM2 ile 7/24 çalıştırma.
Kısa cevap: Node.js, JavaScript kodunu tarayıcı dışında, yani sunucuda ve bilgisayarınızda çalıştırmanızı sağlayan açık kaynaklı bir çalışma ortamıdır (runtime). Google Chrome'un V8 JavaScript motoru üzerine kuruludur. Node.js ile web sunucuları, API'ler, gerçek zamanlı uygulamalar (sohbet, bildirim), Discord/Telegram botları, komut satırı araçları ve Next.js gibi çatılarla web siteleri geliştirilir. Bir programlama dili değil, JavaScript'in sunucuda çalışmasını sağlayan ortamdır.
Node.js Ne İşe Yarar?
| Kullanım | Örnek |
|---|---|
| API ve web sunucusu | Express, Fastify veya NestJS ile REST/GraphQL API |
| Gerçek zamanlı uygulamalar | WebSocket ile sohbet, canlı bildirim, çok oyunculu oyun sunucusu |
| Web siteleri (SSR) | Next.js, Nuxt, Remix ile sunucu tarafında oluşturulan sayfalar |
| Botlar | discord.js ile Discord botu, Telegram ve WhatsApp botları |
| Otomasyon ve araçlar | Scraping, zamanlanmış görevler, komut satırı araçları |
| Yapay zeka entegrasyonları | LLM API'lerini kullanan agent'lar ve MCP sunucuları |
Node.js Nasıl Çalışır?
Node.js olay güdümlü (event-driven) ve engellemeyen G/Ç (non-blocking I/O) modelini kullanır. Bir istek veritabanından veya diskten cevap beklerken Node.js boşta beklemez, diğer isteklere bakar; cevap gelince ilgili kodu çalıştırır. Bu sayede tek bir süreç binlerce eşzamanlı bağlantıyı az kaynakla yönetebilir. Bu model ağ ve G/Ç ağırlıklı işlerde çok verimlidir. Video işleme gibi yoğun CPU hesaplaması gerektiren işlerde ise tek iş parçacığını meşgul edebileceği için worker thread'ler veya ayrı servisler kullanılır.
npm Nedir?
npm (Node Package Manager), Node.js ile birlikte gelen paket yöneticisidir. Dünyanın en büyük açık kaynak paket deposudur. npm install express gibi bir komutla hazır kütüphaneleri projenize eklersiniz; projenin bağımlılıkları package.json dosyasında tutulur.
Node.js Sürümleri: LTS Hangisi?
Node.js'in çift numaralı sürümleri (ör. 22, 24) LTS (Long Term Support, uzun süreli destek) olur ve yıllarca güvenlik güncellemesi alır. Tek numaralı sürümler kısa ömürlü, yeni özellikleri deneyen sürümlerdir. Üretim sunucusunda her zaman güncel LTS sürümünü kullanın. Güncel takvim: nodejs.org.
Node.js mi, Python mu?
| Node.js | Python | |
|---|---|---|
| Dil | JavaScript / TypeScript | Python |
| Güçlü olduğu alan | API, gerçek zamanlı uygulama, web ön yüz + arka uç aynı dil | Veri bilimi, yapay zeka, otomasyon script'leri, Django/FastAPI |
| Eşzamanlılık | Olay döngüsü, doğal olarak asenkron | asyncio veya çoklu süreç |
| Paket yöneticisi | npm, pnpm, yarn | pip, uv, poetry |
İkisi de sunucuda aynı şekilde barındırılır: root erişimli bir Linux sunucuda süreç olarak çalışır, önüne Nginx veya Caddy konur.
Ubuntu Sunucuya Node.js Kurulumu
En esnek yöntem nvm (Node Version Manager) ile kurmaktır; farklı projeler için farklı sürümler kullanabilirsiniz:
# nvm kur (güncel kurulum komutu için nvm'in GitHub sayfasına bakın)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
source ~/.bashrc
# Güncel LTS sürümünü kur ve doğrula
nvm install --lts
node -v
npm -v
Sunucuya bağlanmayı bilmiyorsanız: SSH Nedir, Sunucuya Nasıl Bağlanılır?
Node.js Uygulaması 7/24 Nasıl Çalıştırılır?
Terminalde node app.js ile başlattığınız uygulama, SSH oturumunu kapatınca durur. Üretimde bir süreç yöneticisi kullanılır. En yaygını PM2'dir:
npm install -g pm2
pm2 start app.js --name api # uygulamayı başlat
pm2 startup # sunucu açılışında otomatik başlat
pm2 save # mevcut süreç listesini kaydet
pm2 logs api # kayıtları izle
Alternatif olarak uygulamayı bir systemd servisi olarak tanımlayabilir ya da restart: unless-stopped ayarlı bir Docker konteynerinde çalıştırabilirsiniz (Docker nedir?). Uygulamanın önüne bir ters vekil sunucu (Nginx veya Caddy) koyarak alan adınızı bağlar ve ücretsiz SSL alırsınız.
Paylaşımlı Hosting'de Node.js Çalışır mı?
Çoğu klasik paylaşımlı hosting PHP odaklıdır; sürekli açık bir Node.js sürecine izin vermez ya da ciddi kısıtlar koyar. Express API'si, Discord botu veya WebSocket sunucusu gibi uygulamalar için root erişimli bir VPS/VDS gerekir. Farkları için: VPS Nedir, VDS'den Farkı?
Sıkça Sorulan Sorular
Node.js nedir?
Node.js, JavaScript kodunu tarayıcı dışında, sunucuda çalıştırmayı sağlayan açık kaynaklı bir çalışma ortamıdır. Chrome'un V8 motoru üzerine kuruludur ve API, web sunucusu, bot ve gerçek zamanlı uygulamalar geliştirmek için kullanılır.
Node.js bir programlama dili mi?
Hayır. Dil JavaScript'tir (veya TypeScript); Node.js bu dili sunucuda çalıştıran ortamdır. Tarayıcıdaki JavaScript'ten farklı olarak dosya sistemi, ağ ve işletim sistemi işlevlerine erişebilir.
Node.js ne işe yarar?
Node.js ile REST/GraphQL API'leri, Next.js gibi çatılarla web siteleri, WebSocket tabanlı gerçek zamanlı uygulamalar, Discord ve Telegram botları, otomasyon script'leri ve komut satırı araçları geliştirilir.
Hangi Node.js sürümünü kullanmalıyım?
Üretim için her zaman güncel LTS (uzun süreli destek) sürümünü kullanın. Çift numaralı sürümler LTS olur ve uzun süre güvenlik güncellemesi alır; güncel takvim nodejs.org'da yayınlanır.
Node.js uygulamasını sunucuda nasıl sürekli açık tutarım?
PM2 gibi bir süreç yöneticisi kullanın: pm2 start app.js ile başlatın, pm2 startup ve pm2 save ile sunucu yeniden başlasa da otomatik açılmasını sağlayın. Alternatif olarak systemd servisi veya Docker konteyneri kullanılabilir.
Node.js Uygulamanı Yayına Al
Root erişimli Linux sunucu: istediğin Node.js sürümü, PM2 veya Docker, kendi alan adın ve ücretsiz SSL. Uyku modu yok, süreç sınırı yok. En uygun paket: aylık ₺709 (KDV dahil).