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

Kyfyt Qra T Almdkhlat Almttalyt Bastkhdam Whdt Qra T Node Js



ال ' readline ” تعتبر وحدة Node.js مثالية للاستخدام في السيناريوهات التي تتطلب أخذ أكثر من إدخال متتالي من المستخدم النهائي. تقوم هذه الوحدة بتغليف الإخراج والإدخال القياسي مما يساعد في قراءة دفق الإدخال سطرًا تلو الآخر دون تخطي أي بيانات مستلمة. ومع وصول ' readline '، فإن إجراء استرداد البيانات في الوقت الفعلي يصبح أسهل وأسرع كثيرًا.

تشرح هذه الكتابة الإجراء الخاص بقراءة المدخلات المتتالية باستخدام وحدة readline الخاصة بـnodejs.

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

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







المثال 1: قراءة المدخلات المتتالية باستخدام وحدة Readline والمصفوفات

في هذا المثال، يتم أخذ المدخلات المتتالية وقراءتها باستخدام ' readline ' وحدة. يتم تخزين المدخلات في المصفوفة حيث يتم عرضها على وحدة التحكم:



مقدار ثابت readline = يتطلب ( 'خط القراءة' ) ;

مقدار ثابت readlineInterface = readline. createInterface ( {

مدخل : عملية. com.stdin ,

انتاج : عملية. com.stdout

} )

مقدار ثابت مطلوب0 = 'يمكن! أنا أعرف لقبك؟ ;

مقدار ثابت الطلب1 = 'ما هي هوايتك' ;

مقدار ثابت req2 = 'ماذا تحب أن تسمع' ;

مقدار ثابت req3 = 'يمكن! أنا أعرف طبقك المفضل؟ ;

مقدار ثابت الطلب4 = 'أين تعيش؟' ;

مقدار ثابت الطلب5 = 'ما هو لونك المفضل' ;

مقدار ثابت الطلب6 = 'من هو صديقك المفضل' ;

مقدار ثابت reqArr = [ req0، req1، req2، req3، req4، req5، req6 ] ;

دعونا الدقة = '' ;

مقدار ثابت reqData = س => {

لو ( س < reqArr. طول ) {

readlineInterface. سؤال ( reqArr [ س ] , ( reqResponse ) => {

الدقة += ' ' + reqResponse ;

reqData ( س + 1 ) ;

} ) ;

} آخر {

وحدة التحكم. سجل ( `شكرا ل تقاسم معي ! $ { الدقة } ` ) ;

readlineInterface. يغلق ( ) ;

}

} ;

reqData ( 0 ) ;

وصف الكود المستخدم في مقتطف الكود أعلاه موضح أدناه:



  • ابدأ باستيراد ' readline 'وحدة وتخزين كائنها في متغير يسمى' readline '.
  • بعد ذلك قم بإنشاء واجهة باسم ' readlineInterface 'ل' readline 'الكائن الذي يغلف عملية الإدخال والإخراج القياسية باستخدام' إنشاء واجهة () ' طريقة. كما أنه يربط كل طلب واستجابة بمدخل واحد قابل للقراءة ومخرج قابل للكتابة باستخدام ' عملية ' ملكية.
  • ثم أنشئ سبعة ' مقدار ثابت 'اكتب متغيرات لتخزين بعض الطلبات أو الأسئلة التي يجب طرحها تباعاً. قم بتخزين هذه الثوابت في المصفوفة المفردة المسماة ' reqArr '.
  • قم بإنشاء متغير فارغ جديد ' الدقة '، قم بتحديد وظيفة سهم تسمى' reqData ' وتمرير المعلمة الوحيدة لـ ' س '.
  • داخل هذه الوظيفة، استخدم ' لو ' عبارة تتحقق مما إذا كانت قيمة المعلمة المقدمة أقل من طول ' reqArr ' أم لا.
  • وفي حالة الصحيح ' سؤال() يتم تطبيق الطريقة على الواجهة وتعرض كل طلب من المصفوفة على المخرجات بشكل تسلسلي. ثم يقوم بتمرير القيم المقدمة المقابلة لها كوسيطة.
  • يتم تخزين هذه الوسائط في المصفوفة التي تم إنشاؤها بالفعل ' الدقة '.
  • بمجرد عرض جميع الطلبات بشكل تسلسلي على وحدة التحكم، يتم شرط ' لو 'البيان يصبح كاذبًا وفي' آخر 'الجزء،' الدقة يتم عرض المصفوفة على وحدة التحكم.
  • وأخيرًا، يتم أيضًا إغلاق واجهة readline عن طريق استدعاء ' يغلق() ' طريقة. وكذلك استدعاء ' رقداتا () 'وظيفة وتمرير قيمة أولية لـ' 0 'لبدء السؤال من الأعلى أو من السؤال الأول المتوفر في المصفوفة.

الآن، قم بتنفيذ هذا الملف المحتوي عن طريق إدخال ' العقدة 'الكلمة الرئيسية وراء' اسم الملف 'في المحطة:





عقدة الكتابة

يُظهر الإخراج أن البرنامج قد قرأ المدخلات المتتالية وأعادها جميعًا مرة واحدة:

المثال 2: قراءة المدخلات المتتالية باستخدام وحدة Readline والوظيفة العودية

في هذه الطريقة، يتم استخدام النهج العودي مع ' readline وحدة Node.js لقراءة المدخلات المتتالية من المستخدم في دفق الإدخال:



مقدار ثابت يقرأ = يتطلب ( 'خط القراءة' ) ;
مقدار ثابت readlineInterface = يقرأ. createInterface ( {
مدخل : عملية. com.stdin ,
انتاج : عملية. com.stdout
} )
كان مطلوبا = [ ]
دالة طلب البيانات ( س ) {
لو ( س > 3 )
{
فار متوسط = 0
ل ( ي في reqArr )
{
متوسط += رقم ( reqArr [ ي ] )
}
وحدة التحكم. سجل ( متوسط / 3 ) ;
}
آخر
{
readlineInterface. سؤال ( 'دخول ' + س + 'الرقم من 3:' ، وظيفة ( reqResponse ) {
reqArr. يدفع ( reqResponse )
reqData ( س + 1 )
} )
}
}

reqData ( 1 ) ;

شرح الكود أعلاه موضح أدناه في شكل نقاط:

  • أولاً، قم باستيراد ' readline 'في المنشأة حديثا' write.js 'ملف وتخزين كائن الطريقة في' يقرأ ' عامل. قم بإنشاء واجهة تقوم بتخزين ' readline 'الواجهة التي يتم إنشاؤها عبر' إنشاء واجهة () ' طريقة.
  • الآن قم بإنشاء مصفوفة فارغة بإسم ' reqArr 'وتحديد' رقداتا () ' الدالة التي تقبل أيضًا معلمة واحدة تسمى ' س '.
  • تتحقق الوظيفة أولاً مما إذا كانت القيمة المقدمة أكبر من ' 3 ' أم لا. في حالة 'صحيح'، فإن القيم المستردة التي تأتي في ' س 'يتم تخزين المتغير في مصفوفة وإضافته إلى المتغير الوحيد المسمى' متوسط '.
  • وبعد ذلك ' متوسط 'المتغير مقسوم على' 3 'للعثور على المتوسط ​​حيث أن طول الحد الأقصى المسموح به هو' 3 ' ويتم عرض النتيجة على وحدة التحكم.
  • وفي الجزء الآخر ' سؤال() 'الطريقة مرفقة مع الواجهة' readlineInerface '. تعرض هذه الطريقة الرسالة عبر وحدة التحكم وتحدد وظيفة مجهولة.
  • تقبل الوظيفة بيانات إدخال المستخدم وتضيف تلك البيانات إلى المصفوفة ' reqArr '. كما يقوم بتحديث قيمة ' س ' في كل مرة وتمرير القيمة المحدثة إلى ' رقداتا () ' وظيفة. سيؤدي هذا إلى التأكد من أن المستخدم يقوم فقط بإدخال قيم أقل من ثلاثة بدءًا من ' 0 '. وأخيرا، استدعاء ' رقداتا () وظيفة لبدء عملية التنفيذ.

الآن، قم بتنفيذ هذا الذي يحتوي على ' write.js 'الملف عن طريق إدخال' العقدة 'الكلمة الرئيسية وراء' اسم الملف 'في المحطة:

عقدة الكتابة

يؤكد الإخراج أن المدخلات المتتالية تتم قراءتها ويتم عرض متوسطها على وحدة التحكم باستخدام مزيج من النهج العودي ووحدة readline:

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

خاتمة

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