avatar
·2 dk okuma
fs Promise Modülü

fs Promise Modülü

Node.js, dosya sistemiyle etkileşimde bulunmak için çeşitli modüller sunar. Bunlardan biri, önceki yazımızda ele aldığımız geleneksel fs modülüdür. Ancak, bu modülün daha modern ve gelişmiş bir versiyonu olan Promise tabanlı fs modülü, özellikle ES modülleri kullanıldığında daha yaygın olarak karşımıza çıkmaktadır. Bu yazıda, Promise tabanlı fs modülünün temel özelliklerini ve nasıl kullanılacağını anlatacağız.

fs Promise Modülünün İçeriği

Promise tabanlı fs modülü, asenkron programlama modelini benimser ve geleneksel callback yaklaşımına göre daha temiz ve okunabilir bir kod yazımı sağlar. İki adımda bu modülü kullanmayı göreceğiz:

Adım 1: Modülün İçe Aktarılması

Modülü projenize dahil etmek için aşağıdaki kodu kullanabilirsiniz:

const fs = require('node:fs/promises');

Adım 2: Dosya Okuma

Dosya okumak için readFile metodunu kullanacağız:

fs.readFile('file.txt', 'utf-8')
  .then(data => console.log(data))
  .catch(error => console.log(error));

Burada readFile metodu, bir Promise döndürür. İşlem başarılı olduğunda then bloğu, hata durumunda ise catch bloğu çalışır.

Async/Await ile Kullanım

Promise tabanlı fs modülü, async/await sözdizimi ile de kullanılabilir. Bunun için aşağıdaki gibi bir fonksiyon tanımlayabilirsiniz:

async function readFileAsync() {
  try {
    const data = await fs.readFile('file.txt', 'utf-8');
    console.log(data);
  } catch (error) {
    console.log(error);
  }
}

readFileAsync();

Bu yaklaşım, kodun daha okunabilir ve yönetilebilir olmasını sağlar.

Performans ve Tercih

Node.js'in Callback tabanlı fs modülü API'ları, performans açısından (hem yürütme süresi hem de bellek kullanımı bakımından) Promise tabanlı versiyondan daha üstün olabilir. Ancak, performans kritik bir faktör değilse, Promise tabanlı fs modülünü kullanmanızı öneririm.

Özet

Bu makalede, Node.js'in Promise tabanlı fs modülünün temel kullanımını ele aldık:

  1. Promise tabanlı fs modülü, ES modülleriyle daha yaygın kullanılan bir yaklaşımdır.

  2. Modül, daha temiz ve okunabilir asenkron kod yazımı sağlar.

  3. readFile metodu ile dosya okuma işlemi yapılabilir.

  4. async/await ile kod daha anlaşılır hale getirilebilir.

  5. Performans açısından, geleneksel Callback tabanlı fs modülü tercih edilebilir, ancak genel kullanım için Promise tabanlı modül yeterlidir.