İlk Node.js Uygulaması
İlk Node.js Uygulaması, backend geliştirmeye adım atan her geliştirici için temel bir başlangıçtır. Node.js, JavaScript'in sunucu tarafında çalışmasını sağlayan ve olay tabanlı, bloklanmayan mimarisi ile yüksek performanslı uygulamalar geliştirmeye imkan veren bir ortamdır. Bu ilk uygulama, geliştiricilere sunucu oluşturmayı, istemci taleplerini karşılamayı ve veri akışını yönetmeyi öğretir.
Bu uygulama, yazılım geliştirme ve sistem mimarisinde özellikle web sunucuları, API’ler ve veri işleme servisleri oluşturmak için kullanılır. Temel kavramlar olarak JavaScript sözdizimi, veri yapıları, algoritmalar ve nesne yönelimli programlama (OOP) ilkeleri işlenecektir. Kullanıcılar, fonksiyonlar ve sınıflar aracılığıyla kodu modüler ve tekrar kullanılabilir bir şekilde yazmayı öğrenir.
Bu eğitimle okuyucu, basit bir Node.js sunucusu kurmayı, gelen HTTP taleplerini yanıtlamayı ve temel hata yönetimini öğrenir. Ayrıca, performans ve bellek yönetimi konularında farkındalık kazanarak, ileride daha karmaşık uygulamalar geliştirmek için sağlam bir temel edinir.
Temel Örnek
textconst http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Node.js ile İlk Uygulamanıza Hoş Geldiniz!');
});
server.listen(3000, () => {
console.log('Sunucu 3000 portunda çalışıyor');
});
Bu temel örnekte, Node.js’in yerleşik HTTP modülü require('http') ile projeye dahil edilmiştir. createServer fonksiyonu, sunucuyu oluşturur ve her talep geldiğinde çalışacak bir geri çağırma (callback) fonksiyonu alır. Bu fonksiyon req (request) ve res (response) parametrelerini kullanır.
res.writeHead(200, {'Content-Type': 'text/plain'}) HTTP yanıt başlıklarını ayarlar. res.end mesajı gönderir ve yanıtı sonlandırır. Son olarak, server.listen ile sunucu 3000 portunda dinlemeye başlar ve konsola bir mesaj yazılır. Bu örnek, temel Node.js uygulamalarının mantığını, olay tabanlı çalışmayı ve basit veri yönetimini gösterir. Ayrıca, yanıtın doğru şekilde sonlandırılması sayesinde sık yapılan hatalardan biri olan eksik yanıt gönderme hatası önlenir.
Pratik Örnek
textclass Kullanici {
constructor(ad, yas) {
this.ad = ad;
this.yas = yas;
}
selamla() {
return `Merhaba, benim adım ${this.ad} ve ${this.yas} yaşındayım.`;
}
}
const kullanicilar = \[
new Kullanici('Ayşe', 28),
new Kullanici('Mehmet', 34),
new Kullanici('Elif', 22)
];
kullanicilar.forEach(kullanici => {
console.log(kullanici.selamla());
});
Bu pratik örnekte, OOP prensipleri kullanılarak Kullanici sınıfı oluşturulmuştur. Bu sınıf ad ve yaş gibi özelliklere sahiptir ve selamla metodu ile kişiye özel mesaj döndürür.
Bir dizi kullanici nesnesi oluşturularak, birden fazla kullanıcının bilgileri saklanmıştır. forEach döngüsü ile dizi üzerinde iterasyon yapılır ve her kullanıcı için selamla metodu çalıştırılır. Bu, gerçek dünya senaryolarında kullanıcı verilerini işleme ve algoritmik mantığı uygulama örneğidir. Ayrıca, sınıfların doğru kullanımı ve döngülerin etkin yönetimi ile bellek sızıntıları ve hatalı veri işleme gibi yaygın sorunlar önlenmiş olur.
İyi uygulama ve yaygın hatalar:
Node.js uygulamalarında kodun okunabilir, modüler ve düzgün yapılandırılmış olması önemlidir. Fonksiyon ve sınıflar doğru kullanılmalı, veri yapıları ve algoritmalar etkin şekilde yönetilmelidir. Hataları try/catch blokları veya olay dinleyicileri ile yakalayarak uygulamanın çökmesi engellenmelidir.
Yaygın hatalar arasında açık bağlantılar nedeniyle bellek sızıntıları, hatalı hata yönetimi ve verimsiz algoritmalar bulunur. Debug için console.log veya Node.js’in dahili debug aracını kullanabilirsiniz. Performans için asenkron işlemler tercih edilmeli ve Event Loop bloklanmamalıdır. Güvenlik açısından, giriş verileri doğrulanmalı ve potansiyel kod enjeksiyonları engellenmelidir.
📊 Referans Tablosu
Element/Concept | Description | Usage Example |
---|---|---|
http modülü | Node.js’in yerleşik sunucu modülü | const http = require('http'); |
createServer | Sunucu oluşturur ve talepleri yönetir | http.createServer((req,res)=>{...}); |
listen | Sunucuyu belirli portta başlatır | server.listen(3000); |
class | OOP için sınıf tanımı | class Kullanici {...} |
dizi | Birden fazla nesneyi saklar | const kullanicilar = \[new Kullanici('Ayşe',28)]; |
Özet ve sonraki adımlar:
Bu eğitim ile temel Node.js sunucusu oluşturma, istekleri yanıtlamayı ve veri yönetimini öğrenmiş oldunuz. Sınıflar ve diziler aracılığıyla veri işleme mantığını kavrayarak, daha karmaşık uygulamalara geçiş için sağlam bir temel edindiniz.
Sonraki adımlar olarak, dosya sistemi ile çalışma, veri tabanlarıyla entegrasyon ve Express.js gibi frameworklerle gelişmiş uygulamalar geliştirmek önerilir. Küçük projelerle pratik yaparak bilgilerinizi pekiştirebilir, Node.js resmi dokümantasyonu ve topluluk kaynakları ile ileri teknikleri öğrenebilirsiniz.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu konudaki anlayışınızı pratik sorularla test edin.
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek