كيفية قبول الإدخال من سطر الأوامر في Node.js؟

Kyfyt Qbwl Aladkhal Mn Str Alawamr Fy Node Js



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

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







ستناقش هذه المقالة جميع الطرق الممكنة لقبول الإدخال من سطر الأوامر في Node.js.



كيفية قبول الإدخال من سطر الأوامر في Node.js؟

يقدم Node.js الوحدات التالية لقبول الإدخال من سطر الأوامر:



لنبدأ ب' readline ' وحدة.





المتطلبات المسبقة : قبل الانتقال إلى التنفيذ العملي لأي طريقة، قم أولاً بإنشاء ملف '. js 'بأي اسم واكتب كل الكود المصدري إليه. وهنا قمنا بإنشاء ' فِهرِس ملف '.js'.

الطريقة الأولى: قبول الإدخال من سطر الأوامر باستخدام وحدة 'readline'.

ال ' readline 'تنشئ الوحدة واجهة لقراءة مدخلات المستخدم من الدفق القابل للقراءة وإرجاع استجابتها كمخرجات ناتجة. إنها وحدة مدمجة بحيث يمكن للمستخدم استيرادها مباشرة إلى تطبيق Node.js دون تثبيتها باستخدام ' npm '.



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

مقدار ثابت readline = يتطلب ( 'خط القراءة' )
مقدار ثابت رل = readline. createInterface ( {
مدخل : عملية. com.stdin ,
انتاج : عملية. com.stdout
} )
رل. سؤال ( ``أفضل منصة ل المحتوى الفني ؟ ` , موقع إلكتروني => {
رل. سؤال ( `ما هي الفئة التي ترغب في استكشافها ؟ ` , فئة => {
وحدة التحكم. سجل ( `الموقع الإلكتروني : $ { موقع إلكتروني } , فئة : $ { فئة } ` )
رل. يغلق ( )
} )
} )

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

  • أولاً، ' يتطلب ()' الأسلوب يستورد ' readline ” الوحدة النمطية في مشروع Node.js الحالي.
  • التالي ' createInterface ()' تحدد الطريقة ' 'الإدخال' و'الإخراج'. 'يتدفق ككائن. ال ' مدخل 'يستخدم الدفق' عملية.stdin 'خاصية أخذ المدخلات من المستخدم.
  • ال ' انتاج 'يستخدم الدفق' عملية.stdout 'خاصية قراءة دفق الإدخال وطباعته كمخرج قياسي لتدفق الإدخال المحدد.
  • وبعد ذلك ' سؤال ()' تأخذ الطريقة المدخلات من المستخدم. يقوم بتمرير السؤال كأول ودالة رد الاتصال كوسيطة ثانية. تقوم وظيفة سهم رد الاتصال المحددة باسترداد القيم التي أدخلها المستخدم.
  • وفي تعريف المعطى ' موقع إلكتروني '، و ال ' فئة 'وظيفة سهم رد الاتصال،' console.log ()' يتم استخدام الطريقة لعرض القيم المدخلة.
  • وأخيرًا ' rl.إغلاق ()' يغلق الأسلوب الواجهة التي تم إنشاؤها أعلاه.

انتاج |

الشروع في ' فِهرِس '.js' عن طريق تنفيذ الأمر المقدم:

مؤشر العقدة. js

يُظهر الإخراج التالي واجهة readline التي تأخذ مدخلات المستخدم من سطر الأوامر ثم تعرض القيمة المُدخلة كمخرج قياسي:

الطريقة الثانية: قبول الإدخال من سطر الأوامر باستخدام وحدة 'readline-sync'.

ال ' readline-sync 'هي وحدة تابعة لجهة خارجية تقوم بشكل متزامن باسترداد المعلومات المتعلقة بالأسئلة المشفرة وتخزين الإجابات المقابلة لها للعمليات المستقبلية. إنه بمثابة اتصال بين العميل والخادم من سطر الأوامر.

الفرق الرئيسي بين الوحدات غير المتزامنة والمتزامنة هو أن ' غير متزامن 'يحظر تنفيذ التعليمات البرمجية المصدر حتى لا يتم تنفيذ المهمة المحددة لها بينما تقوم الوحدات المتزامنة بتنفيذ التعليمات البرمجية سطرًا تلو الآخر بطريقة تسلسلية.

تثبيت وحدة 'readline-sync'.

ال 'مزامنة خط القراءة' الوحدة ليست وحدة مدمجة، لذا يجب تثبيتها يدويًا عن طريق تنفيذ الأمر أدناه:

تثبيت npm readline - مزامنة

يُظهر الناتج أن وحدة readline-sync قد تمت إضافتها إلى مشروع Node.js الحالي:

الآن استخدم ' readline-sync ' الوحدة عمليًا باتباع مقتطف الكود المحدد:

كان readlineSync = يتطلب ( 'مزامنة خط القراءة' ) ;
كان اسم الموظف = readlineSync. سؤال ( 'اسم الموظف: ' ) ;
كان دينار = readlineSync. سؤال ( 'المسمى الوظيفي: ' ) ;
كان شركة = readlineSync. سؤال ( 'شركة: ' , {
} ) ;
وحدة التحكم. سجل ( اسم الموظف + ' يعمل ك ' + دينار + ' في ' + شركة ) ;

شرح الكود أعلاه هو كما يلي:

  • لأول مرة ' readline-sync 'يتم استيراد الوحدة داخل الملف ويتم تخزين كائنها في متغير جديد' readlineSync '.
  • بعد ذلك، يتم طرح الاستعلام بمساعدة ' سؤال ()' عن طريق تحديدها كوسيطة.
  • يتم استخدام نفس الإجراء لطرح الأسئلة التالية.
  • وبعد ذلك ' console.log ()' يتم استخدام الطريقة لعرض القيم المدخلة مع السلسلة المقتبسة.

انتاج |

نفذ ' فِهرِس ملف '.js':

مؤشر العقدة. js

يوضح الإخراج أنه بطريقة متزامنة، تم أخذ المدخلات من المستخدمين وعرضها باستخدام ' readline-sync ' وحدة:

الطريقة الثالثة: قبول الإدخال من سطر الأوامر باستخدام الوحدة النمطية 'الموجهة'.

ال ' اِسْتَدْعَى 'هي وحدة غير متزامنة تقوم بإنشاء وظيفة مطالبة لتخزين مدخلات المستخدم كقيمة للمتغير ثم استرجاعها كمخرجات ناتجة. لا يحتاج إلى تكوين الدفق القابل للقراءة والكتابة بشكل صريح ولهذا السبب فهو سهل الاستخدام مقارنةً بـ ' readline ' وحدة.

قم بتثبيت الوحدة 'السريعة'.

ال ' اِسْتَدْعَى ' هي أيضًا وحدة نمطية تابعة لجهة خارجية يمكن تثبيتها بسهولة بمساعدة ' npm ' في هذا الطريق:

موجه تثبيت npm -- يحفظ

في الأمر أعلاه، ' -يحفظ يضيف العلم ' اِسْتَدْعَى 'وحدة إلى' package.json ' ملف.

ويمكن تحليل أن ' اِسْتَدْعَى 'تمت إضافته إلى مشروع Node.js الحالي:

الآن استخدم ''المثبت'' اِسْتَدْعَى ' الوحدة عمليًا بمساعدة مقتطف الكود التالي:

مقدار ثابت اِسْتَدْعَى = يتطلب ( 'اِسْتَدْعَى' )
اِسْتَدْعَى. يبدأ ( )
اِسْتَدْعَى. يحصل ( [ 'اسم المؤلف' , 'فئة' ] , ( يخطئ , نتيجة ) => {
لو ( يخطئ ) {
يرمي يخطئ

} آخر {
وحدة التحكم. سجل ( `$ { نتيجة. اسم المؤلف } يعمل على $ { نتيجة. فئة } ` )

}
} )

في كتلة التعليمات البرمجية المذكورة أعلاه:

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

انتاج |

تشغيل ' فِهرِس ملف '.js':

مؤشر العقدة. js

يأخذ الإخراج التالي مدخلات المستخدم بناءً على الخصائص المحددة ثم يسترد قيمها كمخرج:

الطريقة الرابعة: قبول الإدخال من سطر الأوامر باستخدام وحدة 'المستفسر'.

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

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

اتبع الدليل التفصيلي على ' احصل على الإدخال من سطر الأوامر باستخدام Node.js Inquirer 'للتوضيح العملي.

نصيحة: كيفية تمرير الوسائط من سطر الأوامر في العقدة؟

يمكن للمستخدم أيضًا تمرير الوسائط من سطر الأوامر. ولهذا الغرض ' عملية.argv 'يمكن استخدام الخاصية. ال ' argv 'هي خاصية مضمنة في وحدة 'العملية' المستخدمة لتمرير الوسائط من سطر الأوامر أثناء تشغيل تطبيق Node.js باستخدام الأمر ' العقدة <اسم الملف> ' يأمر.

اتبع الدليل التفصيلي على ' تمرير الوسائط من سطر الأوامر في Node.js 'للتوضيح العملي.

يتعلق الأمر كله بقبول الإدخال من سطر الأوامر في Node.js.

خاتمة

لقبول الإدخال من سطر الأوامر، استخدم 'غير المتزامن' readline '، أو المتزامن' readline-sync ' وحدة. علاوة على ذلك، يمكن تنفيذ ذلك أيضًا من خلال ' اِسْتَدْعَى ' أو ال ' المستفسر ' وحدة. ما عدا ' مزامنة الخط الأحمر '، جميع الوحدات المتبقية غير متزامنة. لقد ناقشت هذه المقالة جميع الطرق الممكنة لقبول الإدخال من سطر الأوامر في Node.js.