avatar
·2 dk okuma
Node.js Streams (Akışlar)

Node.js Streams (Akışlar)

Node.js, genellikle büyük veri miktarlarını işlemek için kullanılan bir JavaScript çalışma zamanıdır. Bu makalede, Node.js'deki akışlar (streams) konseptini, özellikle de fs modülü üzerinden detaylıca ele alacağız.

Akışlar Nedir?

Akış, zaman içinde bir noktadan diğerine taşınan veri dizisidir. Örneğin, aynı bilgisayar içinde bir dosyadan diğerine veri aktarımı bir akış örneğidir. Akışların temel fikri, tüm verilerin bir anda kullanılabilir hale gelmesini beklemeden, verilerle parçalar halinde çalışmaktır. Dosya içeriğini bir dosyadan diğerine aktarırken, tüm içeriğin geçici bellekte saklanmasını beklemeden, içeriği zamanla parçalar halinde aktarırsınız. Bu, gereksiz bellek kullanımını önler.

Node.js'de Akışların Kullanımı

Node.js'de, akışlar genellikle doğrudan kullanılmaz; diğer modüller bu işlevselliği içsel olarak kullanır. Örneğin, fs modülü, dosya okuma ve yazma işlemleri için akışları kullanır. İki temel akış türü vardır: okunabilir akışlar (readable streams) ve yazılabilir akışlar (writable streams).

Okunabilir Akışlar

Okunabilir akışlar, verilerin parçalar halinde okunmasını sağlar. Örneğin, fs.createReadStream metodu, bir dosyadan veriyi parçalar halinde okumak için kullanılır. Okunabilir akışlar, 'data' olayı aracılığıyla veri parçalarını sağlar.

Yazılabilir Akışlar

Yazılabilir akışlar ise veriyi parçalar halinde yazmayı mümkün kılar. fs.createWriteStream metodu, bir dosyaya veriyi parçalar halinde yazmak için kullanılır.

Akışların Pratik Kullanımı

Bir dosyadan diğerine veri aktarmak için, önce okunabilir bir akış oluşturulur ve sonra bu veri yazılabilir bir akışa aktarılır. Bu işlem, readableStream.on('data', callback) ve writableStream.write(chunk) metotları ile gerçekleştirilir.

Akışların Avantajları

Akışlar, özellikle büyük dosyalarla çalışırken, bellek kullanımını optimize eder ve veri işleme sürecini hızlandırır. Akışlar, büyük veri kümelerini küçük, yönetilebilir parçalar halinde işleyerek, Node.js uygulamalarının verimliliğini artırır.

Özet

Bu makalede Node.js'de akışlar konseptini ele aldık:

  1. Akışlar, verileri zaman içinde parçalar halinde taşıyan veri dizileridir.

  2. Node.js, okunabilir ve yazılabilir akışlar olmak üzere iki ana akış türünü destekler.

  3. fs modülü, dosyalardan okuma ve yazma işlemleri için akışları kullanır.

  4. Akışlar, veri işleme sürecini hızlandırır ve bellek kullanımını optimize eder.

  5. Node.js, veri yoğun uygulamalar için akışları etkili bir şekilde kullanır.

Node.js'deki akışlar hakkında daha fazla bilgi edinmek ve pratik uygulamalar görmek için, Node.js belgelerini ve topluluk kaynaklarını incelemenizi öneririm.