Konsep Utama:
- aliran node.js, asynchronous dan event-driven, mengoptimumkan I/O dengan mengendalikan data dalam bahagian yang boleh diurus.
- aliran diklasifikasikan sebagai boleh dibaca, boleh ditulis, atau dupleks (kedua -duanya boleh dibaca dan boleh ditulis). Aliran yang boleh dibaca mengambil data dari sumber; aliran yang boleh ditulis menghantar data ke destinasi.
- fungsi
- tidak ternilai, memudahkan pemindahan data lancar antara sumber dan destinasi tanpa pengurusan aliran manual.
pipe()
kaedah seperti - ,
Readable.pause()
, danReadable.resume()
menawarkan kawalan berbutir ke atas aliran data, meningkatkan fungsi aliran.readable.unpipe()
Memahami Streams:
aliran sama dengan paip UNIX, membolehkan pemindahan data tanpa usaha dari sumber ke destinasi. Pada asasnya, aliran adalah dengan kaedah khusus. Kaedah yang dilaksanakan menentukan sama ada aliran boleh dibaca, boleh ditulis, atau dupleks. Aliran yang boleh dibaca memberikan input data; Aliran yang boleh ditulis mengendalikan output data. EventEmitter
menyediakan keupayaan aliran fail yang boleh dibaca dan ditulis. fs
aliran yang boleh dibaca:
Aliran yang boleh dibaca membaca data dari sumber (fail, penampan dalam memori, atau aliran lain). Menjadi s, mereka mencetuskan pelbagai peristiwa. Kami menggunakan peristiwa ini untuk berinteraksi dengan sungai. EventEmitter
Membaca dari sungai:
Pendekatan yang paling biasa adalah untuk mendengar acara dan melampirkan panggilan balik. Apabila data tersedia, kebakaran acara data
, melaksanakan panggilan balik. data
const fs = require('fs'); const readableStream = fs.createReadStream('file.txt'); let data = ''; readableStream.on('data', (chunk) => { data += chunk; }); readableStream.on('end', () => { console.log(data); });
Mewujudkan aliran yang boleh dibaca. Pada mulanya statik, ia mula mengalir apabila melampirkan pendengar acara fs.createReadStream()
. Potongan data kemudiannya diserahkan kepada panggilan balik. Kekerapan peristiwa data
ditentukan oleh pelaksanaan aliran (mis., Permintaan HTTP mungkin memancarkan peristiwa setiap kb, manakala aliran fail mungkin memancarkan setiap baris). data
memberi isyarat akhir data. end
pada contoh aliran sehingga semua data dibaca: read()
const fs = require('fs'); const readableStream = fs.createReadStream('file.txt'); let data = ''; readableStream.on('data', (chunk) => { data += chunk; }); readableStream.on('end', () => { console.log(data); });
read()
mengambil data dari penampan dalaman. Ia kembali null
apabila tiada data kekal. Acara readable
menunjukkan ketersediaan data.
Menetapkan Pengekodan:
Data biasanya objek Buffer
. Untuk rentetan, gunakan Readable.setEncoding()
:
const fs = require('fs'); const readableStream = fs.createReadStream('file.txt'); let data = ''; let chunk; readableStream.on('readable', () => { while ((chunk = readableStream.read()) !== null) { data += chunk; } }); readableStream.on('end', () => { console.log(data); });
ini menafsirkan data sebagai UTF-8, menyampaikannya sebagai rentetan ke panggil balik.
Piping:
Piping memudahkan pemindahan data antara sumber dan destinasi:
const fs = require('fs'); const readableStream = fs.createReadStream('file.txt'); let data = ''; readableStream.setEncoding('utf8'); readableStream.on('data', (chunk) => { data += chunk; }); readableStream.on('end', () => { console.log(data); });
pipe()
Mengendalikan aliran data secara automatik.
Chaining:
aliran boleh dirantai:
const fs = require('fs'); const readableStream = fs.createReadStream('file1.txt'); const writableStream = fs.createWriteStream('file2.txt'); readableStream.pipe(writableStream);
Decompresses ini input.txt.gz
dan menulis hasilnya kepada output.txt
.
kaedah aliran boleh dibaca tambahan:
-
Readable.pause()
: Jeda aliran. -
Readable.resume()
: Sambungkan aliran yang dijeda. -
readable.unpipe()
: Mengeluarkan aliran destinasi dari paip.
Streams wrable:
Stream yang boleh ditulis menghantar data ke destinasi. Seperti aliran yang boleh dibaca, mereka EventEmitter
s.
Menulis ke sungai:
Gunakan write()
untuk menghantar data:
const fs = require('fs'); const zlib = require('zlib'); fs.createReadStream('input.txt.gz') .pipe(zlib.createGunzip()) .pipe(fs.createWriteStream('output.txt'));
write()
Mengembalikan kejayaan yang menunjukkan boolean. Jika palsu, aliran itu penuh sepenuhnya; Tunggu acara drain
sebelum menulis lebih lanjut.
Akhir data:
Panggil end()
untuk memberi isyarat kepada akhir data. Acara finish
dipancarkan selepas semua data dibuang. Anda tidak boleh menulis selepas memanggil end()
.
Peristiwa Stream yang penting:
-
error
: Menunjukkan ralat. -
pipe
: dipancarkan apabila aliran yang boleh dibaca disalurkan. -
unpipe
: dipancarkan apabilaunpipe()
dipanggil pada aliran yang boleh dibaca.
Kesimpulan:
aliran adalah ciri yang kuat dalam node.js, meningkatkan kecekapan I/O. Memahami aliran, paip, dan chaining membolehkan menulis kod yang bersih dan pelukis.
Node.js Streams FAQ:
-
Apakah aliran Node.js?
- Jenis utama aliran Node.js?
Gunakan dan melaksanakan kaedah - .
stream.Readable
_read
Kes penggunaan biasa untuk aliran yang boleh dibaca? -
Membuat aliran yang boleh ditulis?
dan melaksanakan kaedahGunakan . -
Kegunaan umum aliran yang boleh ditulis? Menyimpan data ke fail, menghantar data ke perkhidmatan.
-
aliran dupleks? menggabungkan fungsi yang boleh dibaca dan ditulis.
-
Transformasi Streams? Ubah suai data ketika ia melewati (mis., Mampatan, penyulitan).
-
data paip antara aliran? Gunakan kaedah
.pipe()
. -
Amalan terbaik untuk bekerja dengan aliran Node.js?
util.promisify
Atas ialah kandungan terperinci Asas -asas aliran node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Jadi di sini anda, bersedia untuk mempelajari semua perkara ini yang dipanggil Ajax. Tetapi, apa sebenarnya? Istilah Ajax merujuk kepada kumpulan teknologi longgar yang digunakan untuk membuat kandungan web yang dinamik dan interaktif. Istilah Ajax, yang asalnya dicipta oleh Jesse J

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Artikel ini akan membimbing anda untuk membuat karusel gambar mudah menggunakan perpustakaan jQuery. Kami akan menggunakan perpustakaan BXSlider, yang dibina di atas jQuery dan menyediakan banyak pilihan konfigurasi untuk menubuhkan karusel. Pada masa kini, Gambar Carousel telah menjadi ciri yang mesti ada di laman web - satu gambar lebih baik daripada seribu perkataan! Selepas membuat keputusan untuk menggunakan karusel gambar, soalan seterusnya adalah bagaimana untuk menciptanya. Pertama, anda perlu mengumpul gambar-gambar resolusi tinggi yang berkualiti tinggi. Seterusnya, anda perlu membuat karusel gambar menggunakan HTML dan beberapa kod JavaScript. Terdapat banyak perpustakaan di web yang dapat membantu anda membuat karusel dengan cara yang berbeza. Kami akan menggunakan Perpustakaan BXSlider Sumber Terbuka. Perpustakaan BXSlider menyokong reka bentuk responsif, jadi karusel yang dibina dengan perpustakaan ini dapat disesuaikan dengan mana -mana

Bawa kesan filem matriks ke halaman anda! Ini adalah plugin jQuery yang sejuk berdasarkan filem terkenal "The Matrix". Plugin mensimulasikan kesan aksara hijau klasik dalam filem, dan hanya pilih gambar dan plugin akan mengubahnya menjadi gambar gaya matriks yang diisi dengan aksara angka. Datang dan cuba, sangat menarik! Bagaimana ia berfungsi Plugin memuat imej ke kanvas dan membaca nilai piksel dan warna: data = ctx.getimagedata (x, y, settings.grainsize, settings.grainsize) .data Plugin dengan bijak membaca kawasan segi empat tepat gambar dan menggunakan jQuery untuk mengira warna purata setiap kawasan. Kemudian, gunakan

Artikel ini menerangkan cara menggunakan peta sumber untuk debug JavaScript minifikasi dengan memetakannya kembali ke kod asal. Ia membincangkan membolehkan peta sumber, menetapkan titik putus, dan menggunakan alat seperti Chrome Devtools dan Webpack.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Dreamweaver CS6
Alat pembangunan web visual

Dreamweaver Mac版
Alat pembangunan web visual

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.