Bagaimana untuk Bekerja Dengan Strim Boleh Tulis dalam Node.js?

Bagaimana Untuk Bekerja Dengan Strim Boleh Tulis Dalam Node Js



Data dipindahkan melalui rangkaian antara sumber dan tempat destinasi dalam bentuk aliran. Bahagian penghantar dirujuk sebagai sumber dan bahagian penerima diwakili sebagai aliran destinasi. Menggunakan Strim ini, data dalam bentuk teks atau format audio atau video boleh dihantar dan diterima dengan kemungkinan kebocoran atau kehilangan data yang minimum.

Panduan ini menerangkan bekerja dengan strim boleh tulis dalam Node.js.

Bagaimana untuk Bekerja Dengan Strim Boleh Tulis dalam Node.js?

' boleh ditulis ” strim boleh digunakan untuk memasukkan data baharu dalam fail atau boleh meletakkan kandungan aliran rawak yang lain. Penukaran data atau peletakan kebanyakannya berlaku dengan bantuan ' paip() ” kaedah. Kaedah ini menjadikan proses menukar dan menetapkan kandungan lebih mudah sambil mengurangkan kemungkinan perlanggaran data.







Sintaks



Strim boleh tulis dibuat dengan menggunakan kaedah di bawah:



fs. createWriteStream ( 'targetFile.ext' ) ;

Dalam sintaks di atas, ' creatWriteStream() ” digunakan oleh objek yang diimport “ fs ” modul, dan fail di mana data akan ditulis diluluskan sebagai parameter.





Mari kita lihat beberapa contoh untuk strim boleh tulis dalam Node.js.

Contoh 1: Menulis Kandungan Fail Lain Menggunakan Strim Boleh Tulis

Dalam contoh di bawah, fail rawak dihantar melalui Strim yang boleh dibaca, dan kemudian kandungan fail ini diletakkan dalam fail lain yang tersedia di Strim boleh tulis:



ialah fsObj = memerlukan ( 'fs' ) ;

const dataStream = fsObj. buatReadStream ( 'mynewfile1.txt' ) ;

const writeStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

dataStream. paip ( writeStream ) ;

Penerangan kod di atas:

  • Pertama, ' fs ' modul diimport dan objeknya disimpan dalam ' baru fsObj ” pembolehubah.
  • Seterusnya, dengan bantuan “ fasObj 'menyebut' createReadStream() ” kaedah untuk mencipta strim boleh dibaca dan lulus fail boleh dibaca yang dipilih sebagai parameternya.
  • Kemudian, aliran boleh tulis dibuat dengan menggunakan ' createWriteStream() ” kaedah untuk menulis kandungan pada fail yang disediakan.
  • Simpan keputusan kaedah yang digunakan di atas dalam ' dataStream ” dan “ writeStream ” pembolehubah masing-masing.
  • Akhir sekali, gunakan '. paip() ' kaedah diikuti dengan ' dataStream ” dan memimpin dengan “ writeStream ” pembolehubah.

Sekarang, laksanakan fail yang mengandungi(controlFlow.js) dengan menjalankan arahan di bawah:

Contoh 2: Menulis Kandungan ke Fail Menggunakan Kaedah 'stream.write()'.

Dalam contoh ini, ' tulis() ” kaedah digunakan untuk menulis data pada fail yang tersedia melalui Strim boleh tulis:

ialah fsObj = memerlukan ( 'fs' ) ;
const httpObj = memerlukan ( 'http' ) ;

const serveLocaly = httpObj. createServer ( ( permintaan, jawapan ) => {
cubalah {
const cellStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
cellStream. menulis ( 'Data untuk dimasukkan ke dalam fail yang disasarkan.' ) ;
cellStream. tamat ( ) ;
tindak balas. tamat ( 'Data Ditulis Melalui Strim Boleh Ditulis' )
}
tangkap ( ralat ) {
konsol. ralat ( ralat ) ;
}
} ) ;
serveLocaly. dengar ( 8080 , ( ) => {
konsol. log ( 'Pelayan Berjalan pada Nombor Port Localhost: '8080' ' )
) ;

Penerangan kod di atas adalah seperti berikut:

  • Pertama, import ' yang diperlukan fs ” dan “ http modul ' dan simpan objeknya dalam ' fsObj ” dan “ httpObj ” pembolehubah masing-masing.
  • Seterusnya, pelayan telah dibuat dengan menggunakan ' createServer() ' kaedah dan menyimpan pelayan yang baru dibuat ini dalam ' serveLocaly ” pembolehubah.
  • Kemudian, gunakan ' cubalah ” blok di dalam fungsi panggil balik kaedah dan panggil “ createWriteStream() ' kaedah menggunakan ' fsObj ” pembolehubah.
  • Lulus fail sasaran yang kandungannya perlu dimasukkan, di dalam kurungan kaedah ini dan simpan hasilnya dalam ' cellStream ” pembolehubah
  • Gunakan ' tulis() ” dengan pembolehubah ini dan hantar mesej tiruan di dalam kurungannya yang akan ditulis dalam fail yang disasarkan.
  • Tutup Strim dengan menggunakan ' akhir() ' kaedah dan memaparkan mesej kejayaan melalui halaman web dengan menggunakan ' response.end() ” kaedah. di mana ' tindak balas ” ialah parameter panggil balik bagi “ createServer ” kaedah.
  • Gunakan ' tangkap ” blok untuk mengendalikan sebarang ralat yang berlaku.
  • Akhir sekali, dengar atau sediakan pelayan melalui nombor port “ 8080 ” dan paparkan mesej kejayaan dengan bantuan fungsi panggil baliknya.

Output yang dihasilkan menunjukkan bahawa teks yang disediakan telah ditulis menggunakan ' tulis() ' kaedah:

Contoh 3: Menulis Data yang Sama pada Berbilang Fail

Dalam contoh ini, satu fail akan dibaca daripada strim menggunakan ' createReadStream() ” kaedah. Kemudian, kandungan yang dibaca ditulis pada berbilang fail menggunakan ' createWriteStream() ” dan “ .pipe() ” kaedah:

ialah fsObj = memerlukan ( 'fs' ) ;

const dataStream = fsObj. buatReadStream ( 'mynewfile1.txt' ) ;

const tulisStrim1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

const tulisStrim2 = fsObj. createWriteStream ( 'usecase.txt' ) ;

dataStream. paip ( tulisStrim1 ) ;

dataStream. paip ( tulisStrim2 ) ;

Dalam coretan kod di atas:

  • ' createReadStream() ” kaedah digunakan dan fail yang kandungannya perlu dibaca diluluskan sebagai parameternya. Hasil kaedah ini disimpan dalam ' dataStream ” pembolehubah.
  • Seterusnya, ' createWriteStream() ” kaedah dipanggil dan fail yang disasarkan diluluskan sebagai parameternya.
  • Dengan cara yang sama, laluan untuk fail kedua juga diluluskan sebagai aliran boleh tulis dan hasilnya disimpan dalam ' tulisStrim1 ” dan “ tulisStrim2 ” pembolehubah.
  • Selepas itu, menggunakan ' .pipe() kaedah ' kandungan yang disimpan dalam ' dataStream ' pembolehubah diberikan kepada ' tulisStrim1 ” dan “ tulisStrim2 ” pembolehubah.

Output yang dijana menunjukkan bahawa kandungan fail yang disediakan telah dimasukkan ke dalam fail yang disediakan melalui strim:

Itu semua tentang kerja strim boleh tulis dalam Node.js.

Kesimpulan

Untuk bekerja dengan aliran boleh tulis, kaedah ' createWriteStream() ” dipanggil melalui “ fs ” objek modul. Laluan fail yang disasarkan di mana kandungan perlu ditulis diluluskan sebagai parameternya. Untuk menulis kandungan daripada aliran lain, “ .pipe() ” kaedah digunakan. ' tulis() ” kaedah juga membantu apabila menulis kandungan terus pada fail yang disasarkan. Siaran ini telah menggambarkan prosedur bekerja dengan aliran boleh tulis.