Yerleşik Modüller
Node.js’te yerleşik modüller, ortamla birlikte gelen ve geliştirilmiş uygulamaların temel işlevlerini sağlayan modüllerdir. Bu modüller, dosya sistemi yönetimi, HTTP sunucuları oluşturma, dosya yollarını işleme, olay yönetimi ve daha fazlası gibi görevleri gerçekleştirir. Yerleşik modüller, projeye dış bağımlılık eklemeden bu işlevleri sunarak hem geliştirme sürecini hızlandırır hem de güvenlik risklerini azaltır.
Yazılım geliştirme ve sistem mimarisi bağlamında, yerleşik modüller uygulamaların ölçeklenebilir ve verimli bir şekilde tasarlanmasını sağlar. Algoritmalar ve veri yapılarıyla uyumlu çalışır, programlama mantığını açık ve anlaşılır tutar ve Nesne Yönelimli Programlama (OOP) prensiplerini uygulama imkânı verir.
Bu eğitimde, Node.js yerleşik modüllerinin nasıl kullanılacağını, doğru kullanım yöntemlerini ve sık yapılan hatalardan nasıl kaçınılacağını öğreneceksiniz. Örneklerle bu modüllerin pratik uygulamalarda nasıl kullanıldığını, performans ve güvenlik optimizasyonlarını göreceksiniz. Böylece, Node.js projelerinde yerleşik modülleri etkili şekilde kullanma becerisine sahip olacaksınız.
Temel Örnek
text// Node.js yerleşik modüllerinin temel kullanım örneği
// 'fs' ve 'path' modüllerini kullanarak bir dosya oluşturup okuma
const fs = require('fs');
const path = require('path');
// Dosya yolunu güvenli şekilde oluştur
const filePath = path.join(__dirname, 'ornek.txt');
// Dosyaya içerik yaz
fs.writeFileSync(filePath, 'Node.js yerleşik modüller örneği.');
// Dosyayı oku
const data = fs.readFileSync(filePath, 'utf-8');
// Sonucu ekrana yazdır
console.log('Dosya içeriği:', data);
Bu temel örnekte, Node.js’in iki yerleşik modülü olan fs ve path kullanılmıştır. require
ile modüller projeye dahil edilir. path.join(__dirname, 'ornek.txt')
, platform bağımsız olarak güvenli bir dosya yolu oluşturur ve hataları önler.
fs.writeFileSync
ile dosya oluşturulup içerik yazılır. Bu senkron fonksiyon küçük uygulamalar için uygundur, çünkü işlemin tamamlanmasını bekler. Ardından fs.readFileSync
ile dosya okunur ve ekrana yazdırılır.
Bu örnek, yerleşik modüllerin dosya yönetimi gibi temel backend görevlerini nasıl kolaylaştırdığını gösterir. Gerçek projelerde log tutma, veri işleme veya rapor oluşturma gibi senaryolarda kullanılabilir. Daha büyük projelerde asenkron versiyonları (fs.promises
) tercih edilerek performans artırılır ve event loop bloklanması önlenir.
Pratik Örnek
text// OOP ve hata yönetimi ile yerleşik modüller kullanarak HTTP sunucusu oluşturma
const http = require('http');
const fs = require('fs');
const path = require('path');
class FileServer {
constructor(port) {
this.port = port;
}
start() {
const server = http.createServer((req, res) => {
const filePath = path.join(__dirname, req.url === '/' ? 'index.html' : req.url);
fs.readFile(filePath, (err, data) => {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Dosya bulunamadı');
} else {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(data);
}
});
});
server.listen(this.port, () => {
console.log(`Sunucu başlatıldı: http://localhost:${this.port}`);
});
}
}
const server = new FileServer(3000);
server.start();
Bu pratik örnek, yerleşik modüllerin gerçek bir uygulamada kullanımını gösterir: http, fs ve path modülleri ile basit bir web sunucusu oluşturulmuştur. FileServer
sınıfı ile OOP prensibi uygulanarak kodun okunabilirliği ve tekrar kullanılabilirliği artırılmıştır.
http.createServer
ile sunucu oluşturulur ve gelen her istek için callback çalışır. path.join
ile güvenli dosya yolu sağlanır ve fs.readFile
ile dosya okunur. Hata durumunda 404 mesajı döndürülür, başarı durumunda 200 kodu ile dosya sunulur. Bu yapı, dosya sunan web sunucularında, API’lerde veya statik içerik servislerinde yaygın olarak kullanılır.
Node.js yerleşik modülleri ile çalışırken en iyi uygulamalar, kodun verimli, güvenli ve bakımının kolay olmasını sağlar. Asenkron fonksiyonları tercih etmek, event loop’un bloklanmasını önler. Hata yönetimi önemlidir: callback’lerdeki err
parametresi dikkate alınmalı ve kullanıcıya anlamlı hata mesajları sunulmalıdır.
Algoritma ve veri yapıları açısından sınıflar, async/await
ve promesler kullanmak kod akışını netleştirir. Bellek sızıntılarını önlemek için kullanılmayan kaynaklar serbest bırakılmalıdır. Node.js’in sunduğu console.error
, node --inspect
ve util
modülü ile debugging yapılabilir. Performans optimizasyonu için senkron dosya işlemlerinden kaçınmak ve buffer kullanımını optimize etmek gerekir. Güvenlik için dosya yollarının doğrulanması, HTTP başlıklarının korunması ve hassas verilerin dikkatli yönetilmesi önerilir.
📊 Referans Tablosu
Node.js Element/Concept | Description | Usage Example |
---|---|---|
fs | Dosya sistemi yönetimi modülü | fs.readFile('dosya.txt', 'utf-8', (err, data) => console.log(data)); |
path | Dosya ve klasör yollarını yönetir | const yol = path.join(__dirname, 'klasor', 'dosya.txt'); |
http | HTTP sunucuları ve istekleri yönetir | http.createServer((req, res) => res.end('Merhaba')).listen(3000); |
events | Olayları yönetir ve abone olunmasını sağlar | const EventEmitter = require('events'); const em = new EventEmitter(); em.on('selam', () => console.log('Merhaba')); em.emit('selam'); |
os | Sistem bilgilerini alır | console.log(os.platform(), os.totalmem()); |
Özetle, Node.js yerleşik modülleri, projelerde dış bağımlılıklara ihtiyaç duymadan güçlü uygulamalar geliştirmeyi sağlar. Bu modüllerle dosya yönetimi, HTTP sunucuları ve sistem bilgisi gibi işlemler güvenli ve etkin bir şekilde yapılabilir.
Yerleşik modülleri iyi anlamak, Node.js’in temelini kavramak ve daha karmaşık framework’ler üzerinde etkili uygulamalar geliştirmek için önemlidir. Bir sonraki adımlar, asenkron modüller (fs.promises
), streams ve güvenlik önlemleri üzerine çalışmak olmalıdır. Bu modülleri projelerde kullanmak, performanslı ve güvenli backend uygulamaları geliştirmenizi sağlar.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 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