Yükleniyor...

Node.js Sözlüğü

Node.js Sözlüğü, Node.js ekosisteminde ileri düzey geliştiriciler için hazırlanmış kapsamlı bir referans kaynağıdır. Bu sözlük, Node.js’in temel ve ileri düzey kavramlarını tanımlar; sözdizimi, veri yapıları, algoritmalar ve nesne yönelimli programlama (OOP) prensiplerini detaylı bir şekilde açıklar. Node.js Sözlüğü, aynı zamanda gerçek dünya uygulamaları için pratik örnekler ve çözüm desenleri sunarak, geliştiricilerin uygulamalarını daha verimli, güvenli ve ölçeklenebilir bir şekilde inşa etmelerine yardımcı olur.
Node.js Sözlüğü, uygulama geliştirme sırasında sıkça karşılaşılan hatalardan kaçınmayı sağlar; bellek sızıntıları, hatalı hata yönetimi ve verimsiz algoritmalar gibi sorunlara karşı rehberlik eder. Geliştiriciler, bu sözlüğü HTTP sunucuları, dosya sistemi yönetimi, event-driven programlama, API entegrasyonu ve asenkron veri işleme gibi çeşitli senaryolarda kullanabilirler. Ayrıca Promises ve async/await gibi modern asenkron tekniklerin doğru kullanımını öğrenirler.
Bu referans, okuyucuya Node.js’in event loop yapısı, modülerlik, stream kullanımı ve güvenlik uygulamaları hakkında derinlemesine bilgi sunar. Node.js Sözlüğü ile geliştiriciler, hem teorik hem de pratik bilgilerini pekiştirerek karmaşık projelerde daha sağlam ve sürdürülebilir çözümler üretebilirler.

Temel Örnek

text
TEXT Code
const http = require('http');

class Kullanici {
constructor(ad, yas) {
this.ad = ad;
this.yas = yas;
}

selamla() {
return `Merhaba, ben ${this.ad} ve ${this.yas} yaşındayım.`;
}
}

const kullanicilar = [
new Kullanici('Ayşe', 28),
new Kullanici('Mehmet', 35)
];

const sunucu = http.createServer((req, res) => {
if (req.url === '/kullanicilar') {
res.writeHead(200, {'Content-Type': 'application/json'});
res.end(JSON.stringify(kullanicilar.map(k => k.selamla())));
} else {
res.writeHead(404, {'Content-Type': 'text/plain'});
res.end('Sayfa bulunamadı');
}
});

sunucu.listen(3000, () => console.log('Sunucu 3000 portunda çalışıyor'));

Yukarıdaki Node.js kodu, Node.js Sözlüğü’nde belirtilen temel kavramları gösterir. http.createServer fonksiyonu, gelen HTTP isteklerini yöneterek Node.js’in event loop yapısını kullanır. Kullanici sınıfı, nesne yönelimli programlamayı (OOP) temsil eder ve ad ile yas özelliklerini kapsüller. kullanicilar dizisi, veri yapılarının kullanımını gösterir. JSON.stringify fonksiyonu, JavaScript objelerini JSON formatına dönüştürerek istemcilerle veri paylaşımını sağlar. Bu örnek, bellek sızıntılarını önler, hataları yönetir ve Node.js’in modüler yapısını etkin biçimde kullanır. Böylece geliştiriciler, HTTP sunucuları, veri yönetimi ve sınıf kullanımı konularında sağlam bir temel öğrenirler.

Pratik Örnek

text
TEXT Code
const fs = require('fs');
const path = require('path');

class DosyaYoneticisi {
constructor(dizin) {
this.dizin = dizin;
}

dosyalariListele() {
try {
return fs.readdirSync(this.dizin);
} catch (err) {
console.error('Dizin okunamadı:', err.message);
return [];
}
}

dosyaOku(dosyaAdi) {
try {
const dosyaYolu = path.join(this.dizin, dosyaAdi);
return fs.readFileSync(dosyaYolu, 'utf8');
} catch (err) {
console.error('Dosya okunamadı:', err.message);
return null;
}
}
}

const yonetici = new DosyaYoneticisi('./veri');
console.log('Dizin içeriği:', yonetici.dosyalariListele());
console.log('İlk dosyanın içeriği:', yonetici.dosyaOku(yonetici.dosyalariListele()[0]));

Advanced Node.js Implementation

text
TEXT Code
const EventEmitter = require('events');

class GorevYoneticisi extends EventEmitter {
constructor() {
super();
this.gorevler = [];
}

gorevEkle(gorev) {
this.gorevler.push(gorev);
this.emit('gorevEklendi', gorev);
}

gorevleriIsle() {
this.gorevler.forEach(gorev => {
try {
console.log('Görev işleniyor:', gorev.ad);
gorev.calistir();
} catch (err) {
console.error('Görev çalıştırılamadı:', err.message);
}
});
}
}

const yonetici = new GorevYoneticisi();

yonetici.on('gorevEklendi', gorev => console.log('Yeni görev eklendi:', gorev.ad));

yonetici.gorevEkle({ad: 'Görev 1', calistir: () => console.log('Görev 1 tamamlandı')});
yonetici.gorevEkle({ad: 'Görev 2', calistir: () => {throw new Error('Hata oluştu')}});

yonetici.gorevleriIsle();

Node.js Sözlüğü’ndeki en iyi uygulamalar, temiz ve okunabilir kod yazmayı, veri yapıları ve algoritmaların etkin kullanımını, OOP prensiplerini doğru uygulamayı ve asenkron işlemleri yönetmeyi içerir. Yaygın hatalar arasında bellek sızıntıları, hatalı hata yönetimi ve verimsiz algoritmalar bulunur. Debug ve optimizasyon için console.log, profiling ve heap analizleri önerilir. Performansı artırmak için non-blocking işlemler, streams ve verimli dosya/istek yönetimi kullanılmalıdır. Güvenlik açısından, giriş doğrulama, injection önleme ve veri gizliliği sağlama önemlidir. Bu uygulamalar, Node.js ile ölçeklenebilir, güvenli ve verimli uygulamalar oluşturulmasını sağlar.

📊 Kapsamlı Referans

http.createServer HTTP sunucusu oluşturur http.createServer(callback) const server = http.createServer((req,res)=>{}) Web uygulamalarında kullanılır
fs.readFileSync Dosya okuma (senkron) fs.readFileSync(path, encoding) fs.readFileSync('dosya.txt','utf8') Büyük dosyalarda önerilmez
fs.readdirSync Dizin içeriğini listeler fs.readdirSync(path) fs.readdirSync('./veri') try/catch kullan
path.join Yolları birleştirir path.join(path1,path2) path.join(__dirname,'veri') Platform bağımsız
EventEmitter Olay yönetimi class MyEmitter extends EventEmitter{} const emitter = new EventEmitter() Event-driven programlama
console.log Konsola yazdırma console.log(msg) console.log('Merhaba') Debug
JSON.stringify JSON’a çevirir JSON.stringify(obj) JSON.stringify({a:1}) HTTP yanıtları için
JSON.parse JSON parse JSON.parse(text) JSON.parse('{"a":1}') Request parse
class Sınıf tanımı class MyClass{} class Kullanici{} OOP
constructor Sınıf yapıcısı constructor(params){} constructor(ad,yas){} Örnek oluşturma
this Nesne referansı this.prop this.ad='Ayşe' Sınıf bağlamı
module.exports Modül dışa aktarımı module.exports=MyModule module.exports=Kullanici Modüler yapı
require Modül import require('module') const fs=require('fs') Bağımlılık yönetimi
setTimeout Gecikme setTimeout(callback,ms) setTimeout(()=>{},1000) Asenkron görevler
setInterval Aralık setInterval(callback,ms) setInterval(()=>{},1000) Periyodik görevler
Promise Asenkron yapı new Promise((res,rej)=>{}) new Promise((res,rej)=>{}) Callback hell önler
async/await Modern async async function fn(){} await fn await fetchData() Kod okunabilirliği
try/catch Hata yönetimi try{}catch(err){} try{...}catch(e){...} Hata önleme
Buffer Binary veri Buffer.from(data) Buffer.from('metin') Dosya/Network
process.env Ortam değişkeni process.env.VAR console.log(process.env.PORT) Konfigürasyon
http.get GET isteği http.get(url,callback) http.get('[https://example.com',res=>{}) Asenkron](https://example.com',res=>{}%29
fs.writeFileSync Dosya yazma (senkron) fs.writeFileSync(file,data) fs.writeFileSync('dosya.txt','data') Küçük dosyalarda

📊 Complete Node.js Properties Reference

Property Values Default Description Node.js Support
http.Server Obje null HTTP sunucusu Tüm sürümler
fs.FileHandle Descriptor null Dosya yönetimi Node.js 10+
Buffer Obje null Binary veri Tüm sürümler
process.env Değişkenler {} Ortam değişkenleri Tüm sürümler
EventEmitter Olaylar null Event-driven yönetim Tüm sürümler
console Log arayüzü console Debug/log Tüm sürümler
JSON Serileştirme {} JSON dönüşümü Tüm sürümler
Promise Asenkron null Asenkron işlemler Node.js 4+
setTimeout/setInterval Timers null Delay veya tekrar görevleri Tüm sürümler
require/module.exports Modüler sistem null Import/Export Tüm sürümler
path Yol yardımcıları null Yol yönetimi Tüm sürümler
fs.promises Asenkron dosya null Asenkron dosya API Node.js 10+

Node.js Sözlüğü, POO, asenkron yönetim, event-driven programlama, dosya ve HTTP sunucu yönetimi konularında ileri düzey bilgi sağlar. Teoriyi pratiğe bağlayarak karmaşık projelerde sağlam ve sürdürülebilir çözümler üretmeyi mümkün kılar. Sonraki adımlar olarak veritabanı entegrasyonu, stream kullanımı, RESTful API geliştirme ve mikroservis mimarisi önerilir. İyi uygulamalar, güvenlik ve performans yönetimiyle Node.js projeleri ölçeklenebilir ve güvenli hale getirilir.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

4
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 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