كيفية استخدام التدفقات القابلة للقراءة في Node.js؟

Kyfyt Astkhdam Altdfqat Alqablt Llqra T Fy Node Js



يتم نقل البيانات عبر الشبكة بين المرسل أو المصدر والوجهة أو جانب المستقبل في شكل تدفقات. يمكن إنشاء هذه التدفقات ودمجها باستخدام عدة طرق، كما يمكن تمرير ملفات الصوت أو الفيديو عبر التدفق أيضًا. يمكن إدراج بيانات القراءة في الملفات المستهدفة الأخرى باستخدام ' يكتب() ' و ' يدفع() 'أساليب كذلك.

سيشرح هذا الدليل استخدام التدفقات القابلة للقراءة في Node.js.

كيفية استخدام التدفقات القابلة للقراءة في Node.js؟

ال ' قابلة للقراءة 'يتم إنشاء التدفقات عن طريق استدعاء' إنشاء قراءة تيار () ' ويمكن بعد ذلك عرض بيانات القراءة عبر صفحة الويب عن طريق إنشاء الخادم المحلي. مستمعي الحدث بمساعدة ' على() يمكن أيضًا ربط الأساليب 'بالتدفقات القابلة للقراءة لعرض الرسائل أو تنفيذ إجراءات محددة عند بدء قراءة الملف أو انتهائها.







قم بإلقاء نظرة على المثال للحصول على عرض عملي.



مثال: قراءة المحتوى وعرضه عبر الخادم باستخدام التدفقات القابلة للقراءة

في هذا المثال، تتم قراءة محتوى الملف المقدم ثم عرضه عبر متصفح الويب:



مقدار ثابت fsObj = يتطلب ( 'خس' ) ;

مقدار ثابت httpObj = يتطلب ( 'http' ) ;

مقدار ثابت الملقم المحلي = httpObj. createServer ( ( استجابة للطلب ) => {

يحاول {
// الملف المستهدف للقراءة
مقدار ثابت تدفق المعلومات = fsObj. createReadStream ( 'usecase.txt' ) ;
// توجيه الملف إلى الاستجابة
تدفق المعلومات. يضخ ( إجابة ) ;
} يمسك ( أخطاء ) {
وحدة التحكم. خطأ ( أخطاء ) ;
}
} ) ;

الملقم المحلي. يستمع ( 8080 , ( ) => {
وحدة التحكم. سجل ( 'الخادم يعمل على رقم منفذ المضيف المحلي: '8080' ' )
} ) ;

وصف الكود أعلاه هو كما يلي:





  • أولا قم باستيراد المطلوب ' خ ' و ' http 'وحدات وتخزين كائناتها في' fsObj ' و ' httpObj 'المتغيرات على التوالي.
  • بعد ذلك، تم إنشاء الخادم عن طريق استدعاء ' إنشاء خادم () 'طريقة وتخزين هذا الخادم الذي تم إنشاؤه حديثًا في' الملقم المحلي ' عامل.
  • ثم استخدم ' يحاول ' داخل وظيفة رد اتصال الطريقة واستدعاء ' إنشاء قراءة تيار () 'طريقة باستخدام' fsObj ' عامل.
  • قم بتمرير محتوى الملف المستهدف الذي يجب قراءته داخل قوس هذه الطريقة وقم بتخزين النتيجة في ' تدفق المعلومات ' عامل.
  • أدخل ال ' تدفق المعلومات 'متغير في' .يضخ() 'طريقة إرسال الرد.
  • استخدم ' يمسك 'كتلة لمعالجة أي أخطاء حدثت.
  • أخيرًا، استمع أو قم بإعداد الخادم عبر رقم المنفذ “ 8080 ' وعرض رسالة النجاح بمساعدة وظيفة رد الاتصال الخاصة بها.

قم بتنفيذ الملف المحتوي (controlFlow.js) للكود أعلاه والذي يتم عبر الأمر المذكور أدناه:

تدفق التحكم بالعقدة js

يُظهر الإخراج الذي تم إنشاؤه أنه بمساعدة ' .يضخ() ' و ' تيار قابل للقراءة '، تمت قراءة بيانات الملف وإرسالها إلى الدفق الوجهة لعرضها على صفحة الويب:



المثال 2: قراءة الملفات الثابتة محليًا باستخدام ReadStream

في هذه الحالة، يتم تحديد الملف المقدم عبر الدفق ثم يتم عرض محتواه عبر نافذة وحدة التحكم بمساعدة مستمعي الأحداث:

مقدار ثابت fsObj = يتطلب ( 'خس' ) ;

مقدار ثابت StreamObj = fsObj. createReadStream ( 'usecase.txt' ) ;

StreamObj. على ( 'بيانات' , ( محتوى ) => {

وحدة التحكم. سجل ( محتوى. إلى سلسلة ( ) ) ;

} ) ;

StreamObj. على ( 'نهاية' , ( ) => {

وحدة التحكم. سجل ( ' انتهيت من قراءة الملف.' ) ;

} ) ;

StreamObj. يضخ ( عملية. com.stdout ) ;

وصف الكود أعلاه هو كما يلي:

  • لأول مرة ' خ 'يتم استيراد الوحدة ويتم تخزين كائنها في' fsObj ' عامل.
  • التالي باستخدام ' fsObj ' يستدعي ' إنشاء قراءة تيار () ' ويمرر مسار الملف المستهدف الذي يجب استرداد محتواه. تخزين نتيجة الطريقة في متغير جديد ' StreamObj '.
  • أرفق ' على() ' مع 'streamObj' الذي يستدعي وظيفة رد الاتصال عندما ' بيانات ' يتم استرجاعه. يتم تمرير البيانات المستردة كمعلمة لوظيفة رد الاتصال التي تحول البيانات إلى تنسيق سلسلة وتعرضها عبر وحدة التحكم.
  • أرفق مرة أخرى ' على() 'طريقة مع' StreamObj 'وهذه المرة تعرض وظيفة رد الاتصال الخاصة بها رسالة نهاية عند اكتمال قراءة الملف.

يُظهر الإخراج الذي تم إنشاؤه بعد تنفيذ الكود أعلاه أن بيانات القراءة على طول الرسالة النهائية قد تم عرضها على وحدة التحكم:

يتعلق الأمر كله باستخدام التدفقات القابلة للقراءة في Node.js.

خاتمة

للعمل مع التدفقات القابلة للقراءة في Node.js، طريقة ' إنشاء قراءة تيار () 'يتم استدعاؤه عبر' خ كائن الوحدة النمطية. يتم بعد ذلك تمرير مسار الملف المستهدف الذي يجب كتابة المحتوى عليه كمعلمة للأسلوب. يمكن الاستفادة منه مع ' .يضخ() 'طريقة لأداء المزيد من المهام على البيانات المستردة مثل كتابة المحتوى في ملف آخر. لقد أوضح هذا المنشور إجراء العمل مع التدفقات القابلة للقراءة.