Özet - Stream'ler
- Node.js kursu
- Orta seviye
- Ders 12/116
- 5 dk
Readable, Writable ve pipe'ı birleştirerek bir dosya kopyalama yazarsın.
Özet - Stream'ler
Bu grupta stream'lerin temel araçlarını öğrendin: Readable ile veri okumak, Writable ile veri yazmak, pipe ile akışları bağlamak ve Transform ile veri dönüştürmek.
Şimdi bunları birleştirerek bir dosya kopyalama simülasyonu yazacaksın. Bir kaynak Readable'ı bir hedef Writable'a pipe ile bağlayacaksın; her parça kopyalanır ve akış tamamlandığında mesaj yazılır. Bu mini görev, verinin kaynaktan hedefe nasıl aktığını gösterir.
Kopyalama tasarımı
Kopyalama iskeleti: bir kaynak Readable, bir hedef Writable ve pipe bağlantısı. Kaynaktan gelen her parça hedefe yazılır; akış bitince "finish" olayı fırlar.
Akış: const kaynak = Readable.from(["satır1", "satır2"]); const hedef = new Writable({ write(chunk, enc, cb) { console.log("Kopyalandı: " + chunk.toString()); cb(); } }); kaynak.pipe(hedef); hedef.on("finish", () => console.log("Kopyalama tamam"));. Çıktı: Kopyalandı: satır1, Kopyalandı: satır2, Kopyalama tamam. pipe parçaları otomatik aktardığı için elle write çağırmana gerek kalmaz.
Uygulama Dosya kopyalama yaz
kaynak adında Readable.from(["satır1", "satır2"]) oluştur. hedef adında bir Writable oluştur: write içinde "Kopyalandı: " + chunk.toString() yazdır ve cb() çağır. kaynak.pipe(hedef) ile bağla. hedef.on("finish", ...) ile "Kopyalama tamam" yaz.
Başlangıç kodu
// Readable ve Writable içe aktar
// buraya yaz
// kaynak ve hedef oluştur
// buraya yaz
// kaynak'ı hedef'e pipe ile bağla ve finish'i dinle
// buraya yazÖrnek çözüm
const { Readable, Writable } = require("stream");
const kaynak = Readable.from(["satır1", "satır2"]);
const hedef = new Writable({
write(chunk, enc, cb) { console.log("Kopyalandı: " + chunk.toString()); cb(); }
});
kaynak.pipe(hedef);
hedef.on("finish", () => console.log("Kopyalama tamam"));Beklenen çıktı
Kopyalandı: satır1 Kopyalandı: satır2 Kopyalama tamam
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kopyalama simülasyonu hangi parçaları birleştirir?
kaynak.pipe(hedef)- Yalnızca new Writable
- Yalnızca console.log
- Yalnızca require
- Readable, Writable ve pipe Doğru cevap
Açıklama: Readable kaynak, Writable hedef ve pipe bağlar.
2 Aracı rolüne eşle
| Kavram | Anlamı |
|---|---|
Readable.from |
Kaynak akışı oluşturur |
new Writable |
Hedef akışı oluşturur |
pipe |
Kaynağı hedefe bağlar |
"finish" |
Kopyalama tamam |