دوره‌ها / Node.js / Streams (Streams Intro)

Streams (Streams Intro)

15 دقیقه Article

Streams: جریان داده در Node.js 🌊

Streams برای کار با داده‌های بزرگ استفاده میشن. به جای خواندن کل فایل در حافظه، داده رو به صورت chunks پردازش میکنیم!

انواع Streams:

  • Readable: خواندن داده (مثل fs.createReadStream)
  • Writable: نوشتن داده (مثل fs.createWriteStream)
  • Duplex: هم خواندن و هم نوشتن
  • Transform: تبدیل داده هنگام خواندن/نوشتن

مثال: خواندن فایل با Stream:

const fs = require('fs');

// خواندن فایل بزرگ با stream
const readStream = fs.createReadStream('large-file.txt', 'utf8');

readStream.on('data', (chunk) => {
    console.log('Received chunk:', chunk.length, 'bytes');
    // پردازش chunk
});

readStream.on('end', () => {
    console.log('File reading completed!');
});

readStream.on('error', (err) => {
    console.error('Error:', err);
});

نوشتن با Stream:

const fs = require('fs');

// نوشتن فایل با stream
const writeStream = fs.createWriteStream('output.txt');

writeStream.write('Hello, ');
writeStream.write('Node.js!');
writeStream.end(); // بستن stream

writeStream.on('finish', () => {
    console.log('Writing completed!');
});

Pipe کردن Streams:

const fs = require('fs');

// Pipe کردن: خواندن از یک فایل و نوشتن در فایل دیگر
const readStream = fs.createReadStream('input.txt');
const writeStream = fs.createWriteStream('output.txt');

// Pipe کردن
readStream.pipe(writeStream);

writeStream.on('finish', () => {
    console.log('File copied!');
});
💡 نکته: Streams برای فایل‌های بزرگ عالیه! حافظه کمتری استفاده میکنن!
✅ یاد گرفتید: Streams برای کار با داده‌های بزرگ ضروریه!

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.

برای ذخیره پیشرفت وارد شوید