تكرار السؤال: …
الإجابة المختصرة
الأنواع هي: Readable (للقراءة)، Writable (للكتابة)، Duplex (للاثنين معاً بشكل مستقل)، وTransform (لتعديل البيانات أثناء مرورها).
الشرح
تعد الـ Streams جوهر الأداء في Node.js لمعالجة البيانات الضخمة دون تحميلها بالكامل في الذاكرة. Readable يوفر أحداث data وend. Writable يقبل write() وend(). أما Duplex فيحتوي قناتين للقراءة والكتابة، بينما Transform هو نوع خاص من Duplex حيث يتم تعديل المخرجات بناءً على المدخلات مباشرة.
مثال بالكود
import { pipeline } from "node:stream/promises";
await pipeline(readable, transform, writable);أخطاء شائعة
- قراءة ملفات بحجم جيجابايت باستخدام fs.readFile في الذاكرة بدلاً من استخدام الـ Streams.
أسئلة متابعة
- ما هي ظاهرة الـ Backpressure في Node.js Streams وكيف تتم معالجتها هندسياً؟
- كيف تقوم بإنشاء وتخصيص Transform Stream لمعالجة البيانات أثناء تدفقها في Node.js؟