كيفية العمل مع التدفقات القابلة للكتابة في Node.js؟

Kyfyt Al Ml M Altdfqat Alqablt Llktabt Fy Node Js



يتم نقل البيانات عبر الشبكة بين أماكن المصدر والوجهة في شكل تدفقات. يشار إلى جانب المرسل بالمصدر ويتم تمثيل جانب المستقبل بالدفق الوجهة. باستخدام هذه التدفقات، يمكن إرسال البيانات في شكل نصي أو تنسيق صوتي أو فيديو واستلامها مع الحد الأدنى من فرص تسرب البيانات أو فقدانها.

يشرح هذا الدليل العمل مع التدفقات القابلة للكتابة في Node.js.

كيفية العمل مع التدفقات القابلة للكتابة في Node.js؟

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







بناء الجملة



يتم إنشاء الدفق القابل للكتابة عن طريق استدعاء الطريقة التالية:



خ. createWriteStream ( 'targetFile.ext' ) ;

في بناء الجملة أعلاه، ' كرياتوريتيستريم () ' يتم استدعاؤه بواسطة الكائن المستورد ' خ '، ويتم تمرير الملف الذي سيتم كتابة البيانات عليه كمعلمة.





دعونا نلقي نظرة على بعض الأمثلة للتدفقات القابلة للكتابة في Node.js.

المثال 1: كتابة محتوى ملف آخر باستخدام دفق قابل للكتابة

في المثال أدناه، يتم إرسال الملف العشوائي عبر التدفق القابل للقراءة، ثم يتم وضع محتوى الملف هذا في ملف آخر متاح في التدفق القابل للكتابة:



كان fsObj = يتطلب ( 'خس' ) ;

مقدار ثابت تدفق المعلومات = fsObj. createReadStream ( 'mynewfile1.txt' ) ;

مقدار ثابت writeStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

تدفق المعلومات. يضخ ( writeStream ) ;

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

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

الآن، قم بتنفيذ الملف الذي يحتوي على (controlFlow.js) عن طريق تشغيل الأمر أدناه:

المثال 2: كتابة المحتوى إلى ملف باستخدام طريقة 'stream.write()'.

في هذا المثال ' يكتب() يتم استخدام الطريقة لكتابة البيانات على الملف المتاح عبر الدفق القابل للكتابة:

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

مقدار ثابت com.serveLocaly = httpObj. createServer ( ( استجابة للطلب ) => {
يحاول {
مقدار ثابت com.cellStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
com.cellStream. يكتب ( 'البيانات التي سيتم وضعها في الملف المستهدف.' ) ;
com.cellStream. نهاية ( ) ;
إجابة. نهاية ( 'البيانات المكتوبة عبر التدفق القابل للكتابة' )
}
يمسك ( خطأ ) {
وحدة التحكم. خطأ ( خطأ ) ;
}
} ) ;
com.serveLocaly. يستمع ( 8080 , ( ) => {
وحدة التحكم. سجل ( 'الخادم يعمل على رقم منفذ المضيف المحلي: '8080' ' )
) ;

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

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

يُظهر الإخراج الذي تم إنشاؤه أن النص المقدم قد تم كتابته باستخدام ' يكتب() ' طريقة:

المثال 3: كتابة نفس البيانات على ملفات متعددة

في هذا المثال، ستتم قراءة ملف واحد من الدفق باستخدام الزر ' إنشاء قراءة تيار () ' طريقة. ثم تتم كتابة المحتوى المقروء على ملفات متعددة باستخدام ' إنشاءWriteStream () ' و ' .يضخ() ' طُرق:

كان fsObj = يتطلب ( 'خس' ) ;

مقدار ثابت تدفق المعلومات = fsObj. createReadStream ( 'mynewfile1.txt' ) ;

مقدار ثابت writeStream1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

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

تدفق المعلومات. يضخ ( writeStream1 ) ;

تدفق المعلومات. يضخ ( writeStream2 ) ;

في مقتطف الكود أعلاه:

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

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

هذا كل ما يتعلق بعمل التدفقات القابلة للكتابة في Node.js.

خاتمة

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