Bu kılavuz Node.js'de okunabilir akışların kullanımını açıklayacaktır.
Node.js'de Okunabilir Akışlar Nasıl Kullanılır?
“ Okunabilir ' akışları ' çağrılarak oluşturulur createReadStream() ” ve okunan veriler daha sonra yerel sunucu oluşturularak web sayfası üzerinde görüntülenebilir. Etkinlik dinleyicileri “ Açık() ” yöntemleri ayrıca, dosyanın okunması başladığında veya bittiğinde mesajları görüntülemek veya belirli eylemleri gerçekleştirmek için okunabilir akışlara eklenebilir.
Pratik bir gösteri için örneğe bir göz atın.
Örnek: Okunabilir Akışlar Kullanarak İçeriği Sunucu Üzerinden Okumak ve Görüntülemek
Bu örnekte, sağlanan bir dosyanın içeriği web tarayıcısı üzerinden okunmakta ve ardından görüntülenmektedir:
yapı fsObj = gerekmek ( 'f' ) ;
yapı httpObj = gerekmek ( 'http' ) ;
yapı Yerel sunucu = httpObj. CreateServer ( ( istek, yanıt ) => {
denemek {
// Okunacak Hedeflenen Dosya
yapı veri akışı = fsObj. CreateReadStream ( 'usecase.txt' ) ;
// Dosyayı yanıta yönlendir
veri akışı. boru ( cevap ) ;
} yakalamak ( hatalar ) {
konsol. hata ( hatalar ) ;
}
} ) ;
Yerel sunucu. Dinlemek ( 8080 , ( ) => {
konsol. kayıt ( 'Sunucu Localhost Bağlantı Noktası Numarasında Çalışıyor: '8080' ' )
} ) ;
Yukarıdaki kodun açıklaması şu şekildedir:
- Öncelikle gerekli olanı içe aktarın fs ' Ve ' http ” modülleri ve nesnelerini “ fsObj ' Ve ' httpObj ” değişkenleri sırasıyla.
- Daha sonra sunucu “ çağrılarak oluşturulmuştur. createServer() ” yöntemini kullanarak yeni oluşturulan bu sunucuyu “ Yerel sunucu ” değişkeni.
- Daha sonra bir 'kullanın denemek yöntem geri çağırma işlevinin içindeki ' bloğunu kullanın ve ' createReadStream() ' yöntemini kullanarak ' fsObj ” değişkeni.
- Okunması gereken hedeflenen dosya içeriğini bu yöntem parantezinin içine iletin ve sonucu “ veri akışı ” değişkeni.
- “” ekleyin veri akışı ” değişkeni “ .boru() ” yanıtını gönderme yöntemini kullanın.
- “ yakalamak Oluşan hataları işlemek için ” bloğu.
- Son olarak port numarası üzerinden sunucuyu dinleyin veya kurun. 8080 ”ve geri arama fonksiyonunun yardımıyla başarı mesajını görüntüleyin.
Yukarıdaki kodu içeren dosyayı (controlFlow.js) aşağıda belirtilen komutla yürütün:
düğüm kontrolüFlow. jsOluşturulan çıktı, şunun yardımıyla şunu gösterir: “ .boru() ' Ve ' Okunabilir Akış ”, dosya verileri okundu ve web sayfası üzerinde görüntülenmek üzere hedef akışa gönderildi:
Örnek 2: Statik Dosyaları ReadStream Kullanarak Yerel Olarak Okuma
Bu durumda, akış üzerinden sağlanan dosya seçilir ve içeriği, olay dinleyicilerinin yardımıyla konsol penceresi üzerinde görüntülenir:
yapı fsObj = gerekmek ( 'f' ) ;yapı StreamObj = fsObj. CreateReadStream ( 'usecase.txt' ) ;
StreamObj. Açık ( 'veri' , ( içerik ) => {
konsol. kayıt ( içerik. toString ( ) ) ;
} ) ;
StreamObj. Açık ( 'son' , ( ) => {
konsol. kayıt ( ' \N Dosyayı okumayı bitirdim.' ) ;
} ) ;
StreamObj. boru ( işlem. stdout ) ;
Yukarıdaki kodun açıklaması şu şekildedir:
- İlk önce ' fs ” modülü içe aktarılır ve nesnesi “ fsObj ” değişkeni.
- Daha sonra “ fsObj ' şunu çağırır:' createReadStream() ” yöntemini kullanarak içeriğinin alınması gereken hedeflenen dosyanın yolunu iletir. Yöntemin sonucunu yeni bir değişkende saklayın “ StreamObj ”.
- ''yi ekleyin Açık() ' durumunda bir geri çağırma işlevini çağıran 'streamObj' içeren 'yöntemi' veri ” alınır. Alınan veriler, verileri String formatına dönüştüren ve konsol üzerinde görüntüleyen geri çağırma işlevi için bir parametre olarak iletilir.
- Tekrar “ Açık() ' yöntemi ' ile StreamObj ” ve bu sefer geri arama işlevi, dosyanın okunması tamamlandığında bir bitiş mesajı görüntüler.
Yukarıdaki kodun yürütülmesinden sonra oluşturulan çıktı, bitiş mesajı boyunca okunan verilerin konsol üzerinde görüntülendiğini gösterir:
Bunların hepsi Node.js'de okunabilir akışların kullanımıyla ilgilidir.
Çözüm
Node.js'de okunabilir akışlarla çalışmak için “ createReadStream() ”“ aracılığıyla çağrılır fs ” modül nesnesi. İçeriğin yazılması gereken hedeflenen dosya yolu daha sonra yöntem parametresi olarak iletilir. “ ile kullanılabilir. .boru() İçeriği başka bir dosyaya yazmak gibi, alınan veriler üzerinde daha fazla görev gerçekleştirme yöntemini kullanın. Bu gönderide okunabilir akışlarla çalışma prosedürü gösterilmiştir.