Node.js, JavaScript kodlarının tarayıcı dışında çalıştırılmasına olanak tanıyan açık kaynaklı, çapraz platform bir JavaScript çalışma ortamıdır. Bu, 2009 yılında Node.js'in ortaya çıkışıyla mümkün hale geldi. JavaScript, daha önce sadece tarayıcı içinde çalıştırılabiliyorken, Node.js sayesinde tarayıcı dışında da çalıştırılabilmekte ve böylece yeni kullanım alanlarına açılmaktadır.
Açık Kaynak: Node.js'in kaynak kodları herkes tarafından erişilebilir ve değiştirilebilir.
Çapraz Platform: Mac, Windows ve Linux işletim sistemlerinde çalışabilir.
JavaScript Çalışma Ortamı: JavaScript programlarını çalıştırabilmek için gerekli tüm bileşenleri sağlar.
Node.js'in en önemli özelliği, JavaScript programlarını tarayıcı dışında çalıştırabilmesidir. Bu, JavaScript'in kullanım alanlarını genişletmiş ve geleneksel web siteleri, arka uç hizmetleri, gerçek zamanlı uygulamalar, streaming servisleri, komut satırı araçları ve çok oyunculu oyunlar gibi çeşitli alanlarda kullanılmasına imkan tanımıştır.
Node.js, C++ ve JavaScript dillerinde yazılmıştır. Yapısını anlamak için GitHub'daki node.js/node deposundaki üç ana klasörü inceleyebiliriz:
Dependecies (Bağımlılıklar) Klasörü: Node.js'in işlevselliği için gerekli dış kodları içerir. Önemli bağımlılıklardan biri V8 JavaScript motorudur, bu Chrome tarayıcısında da kullanılır. Diğeri ise libuv adında bir açık kaynak kütüphanesidir ki bu, dosya sistemi ve ağ gibi işletim sistemi özelliklerine erişim sağlar.
Source (Kaynak) Klasörü: Node.js'in C++ kaynak kodlarını içerir. JavaScript dilinin düşük seviye işlevlerle başa çıkma kapasitesi olmadığından, bu işlevler C++ ile yazılmıştır.
Lib (Kütüphane) Klasörü: JavaScript geliştiricilerinin C++ özelliklerine erişimini kolaylaştıran JavaScript kodlarını içerir. Örneğin, fs.js
dosya sistemi ile etkileşimde bulunmak için kullanılan JavaScript kodunu içerir.
Node.js, tarayıcı tabanlı JavaScript çalışma ortamından farklı olarak, web API'lerine erişemez. Yani, window
veya document
gibi nesneler Node.js'de kullanılamaz.
Node.js, bir dil veya çerçeve değil, JavaScript kodlarını çalıştıran bir çalışma ortamıdır.
Node.js, JavaScript'in sınırlarını zorlayarak, kullanıcılarına geniş bir yelpazede uygulama geliştirme imkanı sunar. İster geleneksel bir web sitesi, ister bir API servisi, isterse de gerçek zamanlı bir uygulama olsun, Node.js ile geliştirilebilir. Netflix gibi streaming servisleri ve çok oyunculu oyunlar da Node.js kullanılarak oluşturulabilir.
Node.js, JavaScript kodlarını tarayıcı dışında çalıştırmayı sağlayan açık kaynaklı ve çapraz platform bir çalışma ortamıdır.
Çeşitli türde uygulamalar geliştirebilmek için JavaScript'e yeni özellikler ekler.
Temel bileşenleri, JavaScript ile etkileşime geçen C++ kodları ve bu kodlara JavaScript üzerinden erişimi sağlayan kütüphanelerdir.
Web API'lerine erişimi olmayan, tarayıcı dışı bir ortamdır.
Bu makalede Node.js'in ne olduğunu, temel özelliklerini ve yapısını öğrendik. Bir sonraki adımda, Node.js ile basit bir "Hello World" programı yazarak pratiğe dökmemiz mümkün olacak.