Ana içeriğe geç

Node.js

Okunuşu
nod cey-es
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/nodejs

Kısaca

Node.js, JavaScript'i tarayıcı dışında çalıştıran, en çok web sunucuları, API'ler ve komut satırı araçları için kullanılan açık kaynaklı çalışma ortamıdır.

Node.js nedir?

Node.js, JavaScript'i yalnızca bir web tarayıcısının içinde değil, bir sunucuda ya da kendi bilgisayarınızda çalıştırmanızı sağlayan bir çalışma ortamıdır (runtime). Google Chrome'un JavaScript motoru olan V8 üzerine kuruludur ve ilk kez 2009'da Ryan Dahl tarafından yayımlanmıştır. Node.js bir programlama dili ya da framework değildir; JavaScript kodunuzu çalıştıran ve ona dosyalara, ağa ve işletim sistemine erişim veren programdır.

Node.js işleri tek iş parçacıklı (single-threaded) bir event loop ve engellemeyen (non-blocking) I/O ile yürütür (I/O, dosya okuma ya da veritabanıyla konuşma gibi girdi ve çıktı işlemleridir). Kodunuz yavaş bir işlem başlattığında Node.js beklemez; diğer işlere geçer ve sonuç hazır olduğunda bir callback çalıştırır ya da bir async fonksiyonu devam ettirir. Bu, API istekleri ya da WebSocket sohbetleri gibi aynı anda çok sayıda bağlantıyı yönetmede onu çok verimli kılar.

Bir siparişi alıp mutfağa ileten ve yemek pişerken mutfak kapısında beklemek yerine diğer masalara hizmet eden tek bir garson düşünün. Node.js, açık kaynaklı JavaScript paketlerinin en büyük kayıt defterinin arkasındaki paket yöneticisi olan npm ile birlikte gelir; Express, Fastify, NestJS ve Next.js gibi framework'lerin yanı sıra çoğu frontend derleme aracına da güç verir.

JavaScript kodunuz tek bir ana iş parçacığında çalıştığı için görüntü işleme ya da büyük hesaplamalar gibi işlemciyi yoğun kullanan işler, bitene kadar diğer tüm istekleri engelleyebilir. Bu tür işler genellikle worker thread'lere, ayrı süreçlere ya da başka servislere taşınır. Node.js ayrıca sıklıkla Deno ve Bun gibi daha yeni çalışma ortamlarıyla karşılaştırılır; bunlar büyük oranda aynı JavaScript'i çalıştırır ancak yerleşik araçlar ve varsayılanlar bakımından farklılaşır.

Önemli noktalar

  • Node.js, JavaScript'i tarayıcının dışında, sunucularda ve geliştirici makinelerinde çalıştırır.
  • Chrome'un V8 motoru üzerine kurulu bir çalışma ortamıdır; dil ya da framework değildir.
  • Engellemeyen bir event loop, tek bir sürecin birçok eşzamanlı bağlantıyı yönetmesini sağlar.
  • İşlemciyi yoğun kullanan işler event loop'u engelleyebilir ve başka bir yere taşınmalıdır.
  • npm, devasa bir açık kaynak paket ekosistemine erişim sağlar.

Örnek

Yerleşik modüllerle minimal bir web sunucusujavascript
// server.mjs: a tiny JSON API with no external packages
import { createServer } from "node:http";

const server = createServer((req, res) => {
  res.writeHead(200, { "Content-Type": "application/json" });
  res.end(JSON.stringify({ message: "Hello from Node.js" }));
});

server.listen(3000, () => {
  console.log("Listening on http://localhost:3000");
});

// Run it with: node server.mjs

Sık sorulan sorular

Node.js bir programlama dili midir?

Hayır. Programlama dili JavaScript'tir; Node.js ise onu çalıştıran bir çalışma ortamıdır. Node.js, tarayıcıların sunmadığı dosya, ağ ve süreç API'leri ekler.

Node.js frontend midir, backend mi?

Node.js sunucularda ve geliştirici makinelerinde çalışır, bu yüzden esas olarak backend kodu için kullanılır. Frontend geliştiricileri de derleme araçlarını, bundler'ları ve yerel geliştirme sunucularını çalıştırmak için her gün ona güvenir.

Node.js tek iş parçacıklı mıdır?

JavaScript kodunuz event loop tarafından yönetilen tek bir ana iş parçacığında çalışır, ancak Node.js bazı I/O görevleri için arka planda bir iş parçacığı havuzu kullanır. İşlemciyi yoğun kullanan işler için worker_threads modülüyle ek iş parçacıkları da oluşturabilirsiniz.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar