- Konu sahibi
- #1
JavaScript, tek başına bir "tarayıcı dili" değildir; Node.js ise aynı dili tarayıcı dışında çalıştıran çalışma ortamıdır. Bu yüzden konu yalnızca isim benzerliği değil, aynı dilin iki ayrı kullanım alanıdır: biri web arayüzü, diğeri sunucu ve komut satırı tarafı.
Bu dosyayı örneğin app.js olarak kaydedip Node.js ile çalıştırdığında, sunucu 3000 numaralı portu dinler. Tarayıcıdan adresini açtığında ekranda dönen metni görürsün; yani JavaScript artık tarayıcı içinde değil, Node.js çalışma ortamında çalışıyordur.
JavaScript nedir?
JavaScript’in temel görevi, web sayfalarına hareket ve mantık katmaktır. MDN’nin anlattığı gibi dil, web sayfalarını etkileşimli hale getirmek için kullanılır; butonlara tepki verme, sayfayı güncelleme, kullanıcı girdisini işleme ve benzeri işlerde devreye girer. Daha geniş resimde JavaScript, ECMAScript standardına dayanan bir çekirdek dil olarak düşünülür; tarayıcılar bu çekirdeğin üzerine DOM ve diğer web API’lerini ekler.Node.js nedir?
Node.js, JavaScript’i tarayıcı dışına çıkaran açık kaynaklı ve platformlar arası bir runtime’dır. Resmî dokümantasyon, Node.js’in sunucu, web uygulaması, komut satırı aracı ve script üretmek için kullanılabildiğini; ayrıca asenkron ve olay güdümlü bir yapıya sahip olduğunu söyler. Bu yapı, tek bir JavaScript iş parçacığıyla çalışırken I/O işlerini olay döngüsü üzerinden engellemeden yürütmeye dayanır.Aralarındaki temel fark
- JavaScript, kullanılan dilin kendisidir; Node.js ise bu dili çalıştıran ortamdır.
- Tarayıcı tarafında JavaScript, kullanıcı arayüzü ve DOM ile ilgilenir; Node.js tarafında aynı dil dosya sistemi, ağ ve sunucu işleri için kullanılır.
- Farkı oluşturan şey dil değil, çalıştığı ortamdır; bu yüzden erişebildiğin API’ler değişir.
Hangi durumda hangisini kullanmalısın?
- Kullanıcının tıkladığı butonları, form doğrulamasını, animasyonları ve sayfa içi güncellemeleri yönetiyorsan tarayıcı JavaScript’i uygundur.
- API yazıyor, dosya okuyor/yazıyor, CLI aracı geliştiriyor veya otomasyon kuruyorsan Node.js doğru seçimdir.
Küçük bir Node.js örneği
Aşağıdaki örnek, Node.js ile küçük bir HTTP sunucusunun nasıl kurulduğunu gösterir. Resmî dokümantasyondaki örnek mantığa uygun şekilde, bir isteğe yanıt veren temel bir sunucu oluşturur.
JavaScript:
const http = require('node:http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
res.end('Merhaba! Bu bir Node.js sunucusudur.');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Sunucu http://127.0.0.1:3000 adresinde çalışıyor.');
});
Bu dosyayı örneğin app.js olarak kaydedip Node.js ile çalıştırdığında, sunucu 3000 numaralı portu dinler. Tarayıcıdan adresini açtığında ekranda dönen metni görürsün; yani JavaScript artık tarayıcı içinde değil, Node.js çalışma ortamında çalışıyordur.