Node.js
Transform stream
Transform stream ile veri dönüştürmeyi öğrenirsin.
Transform stream
Transform stream hem okur hem yazar: gelen parçayı alır, dönüştürür ve çıkan parçayı iletir. new Transform({ transform(chunk, encoding, callback) { ... } }) ile oluşturulur.
transform metodu her giriş parçası için çağrılır. Dönüştürülmüş veriyi callback(null, cikti) ile geçirirsin; ilk argüman hata (null = hata yok). Örnek: const upper = new Transform({ transform(chunk, enc, cb) { cb(null, chunk.toString().toUpperCase()); } });. upper.write("merhaba"); upper.end(); çağrısı MERHABA üretir. Çıktıyı upper.on("data", (c) => console.log(c.toString())) ile yakalarsın. Transform, pipe zincirinin orta halkasıdır.
Transform ve pipe
Transform stream'ler pipe zincirinin orta halkasıdır. kaynak.pipe(donusturucu).pipe(hedef) ile veri kaynaktan gelir, dönüştürülür ve hedefe yazılır. Bu, veriyi akışkan biçimde işlemenin deyimsel (idiomatic) yoludur.
Örnek: const upper = new Transform({ transform(c, e, cb) { cb(null, c.toString().toUpperCase()); } }); kaynak.pipe(upper).pipe(hedef);. Her parça büyütülerek hedefe akar. Tek başına da kullanılabilir: upper.write("a"); upper.on("data", (c) => console.log(c.toString())); upper.end();. Bu, A yazdırır. Transform, Readable ve Writable'ı birleştiren güçlü bir araçtır.
Uygulama Bir Transform yaz
upper adında bir Transform oluştur: transform(chunk, enc, cb) gövdesi cb(null, chunk.toString().toUpperCase()) olsun. "data" olayını dinle: her c için "Dönüştü: " + c.toString() yaz. upper.write("merhaba") çağır ve upper.end() yap.
Örnek çözümü göster
const { Transform } = require("stream");
const upper = new Transform({
transform(chunk, enc, cb) { cb(null, chunk.toString().toUpperCase()); }
});
upper.on("data", (c) => console.log("Dönüştü: " + c.toString()));
upper.write("merhaba");
upper.end();
Kendini test et
-
transform gövdesini tamamla
cb(null, chunk.toString().to____Case());
Cevabı göster
cb(null, chunk.toString().toUpperCase());
-
Transform stream'in temel görevi nedir?
new Transform({ transform(c, e, cb) { cb(null, c.toString().toUpperCase()); } })
- Yalnızca veri okur
- Veriyi belleğe yazar
- Gelen parçayı dönüştürüp çıkan parçayı iletir
- Hata fırlatır
Cevabı göster
Gelen parçayı dönüştürüp çıkan parçayı iletir — Transform geleni dönüştürüp çıkarı iletir.
-
Parçayı rolüne eşle
- transform(chunk, ...)
- Giriş parçasını işler
- cb(null, çıktı)
- Dönüştürülmüş veriyi geçirir
- toUpperCase()
- Harfleri büyütür
- .pipe(transform)
- Zincire dönüştürücü ekler
Sıradaki ders: Özet - Stream'ler