Skip to content

كيفية استخدام Node.js REPL

الأمر node هو الأمر الذي نستخدمه لتشغيل نصوص Node.js الخاصة بنا:

bash
node script.js

إذا قمنا بتشغيل الأمر node بدون أي نص لتنفيذه أو بدون أي وسائط، فإننا نبدأ جلسة REPL:

bash
node

ملاحظة

REPL تعني Read Evaluate Print Loop (حلقة القراءة والتقييم والطباعة)، وهي بيئة لغة برمجة (بشكل أساسي نافذة وحدة تحكم) تأخذ تعبيرًا واحدًا كمدخل من المستخدم وتعيد النتيجة إلى وحدة التحكم بعد التنفيذ. توفر جلسة REPL طريقة ملائمة لاختبار كود JavaScript البسيط بسرعة.

إذا جربتها الآن في جهازك الطرفي، فإليك ما سيحدث:

bash
> node
>

يبقى الأمر في وضع الخمول وينتظر منا إدخال شيء ما.

TIP

إذا لم تكن متأكدًا من كيفية فتح جهازك الطرفي، فابحث على جوجل عن "كيفية فتح الجهاز الطرفي على نظام التشغيل الخاص بك".

REPL ينتظر منا إدخال بعض كود JavaScript، لنكون أكثر دقة.

ابدأ ببساطة وأدخل:

bash
> console.log('test')
test
undefined
>

القيمة الأولى، test، هي الإخراج الذي طلبنا من وحدة التحكم طباعته، ثم نحصل على undefined وهي القيمة المرجعة لتشغيل console.log(). قرأ Node سطر الكود هذا، وقيمه، وطبع النتيجة، ثم عاد إلى انتظار المزيد من سطور الكود. سيعيد Node تكرار هذه الخطوات الثلاث لكل جزء من الكود الذي نقوم بتنفيذه في REPL حتى نخرج من الجلسة. من هنا حصل REPL على اسمه.

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

bash
> 5==5
false
>

لاحظ الفرق في مخرجات السطرين أعلاه. طبع Node REPL undefined بعد تنفيذ console.log()، بينما من ناحية أخرى، طبع فقط نتيجة 5== '5'. يجب أن تضع في اعتبارك أن الأول هو مجرد عبارة في JavaScript، والأخير هو تعبير.

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

javascript
function generateRandom()
...

Node REPL ذكي بما يكفي لتحديد أنك لم تنته من كتابة الكود الخاص بك بعد، وسوف ينتقل إلى وضع متعدد الأسطر لتتمكن من كتابة المزيد من الكود. الآن قم بإنهاء تعريف الدالة الخاصة بك واضغط على إدخال:

javascript
function generateRandom()
...return Math.random()

المتغير الخاص:

إذا كتبت _ بعد جزء من التعليمات البرمجية، فسيؤدي ذلك إلى طباعة نتيجة العملية الأخيرة.

مفتاح السهم العلوي:

إذا ضغطت على مفتاح السهم العلوي، فستتمكن من الوصول إلى سجل الأسطر السابقة من التعليمات البرمجية التي تم تنفيذها في الجلسة الحالية، وحتى الجلسات السابقة لـ REPL.

أوامر النقطة

يحتوي REPL على بعض الأوامر الخاصة، والتي تبدأ جميعها بنقطة .. هم:

  • .help: يعرض تعليمات أوامر النقطة.
  • .editor: يمكّن وضع المحرر، لكتابة تعليمات برمجية JavaScript متعددة الأسطر بسهولة. بمجرد دخولك هذا الوضع، أدخل ctrl-D لتشغيل التعليمات البرمجية التي كتبتها.
  • .break: عند إدخال تعبير متعدد الأسطر، سيؤدي إدخال الأمر .break إلى إحباط المزيد من الإدخال. نفس الضغط على ctrl-C.
  • .clear: يعيد سياق REPL إلى كائن فارغ ويمسح أي تعبير متعدد الأسطر يتم إدخاله حاليًا.
  • .1oad: يقوم بتحميل ملف JavaScript، بالنسبة إلى دليل العمل الحالي.
  • .save: يحفظ كل ما أدخلته في جلسة REPL في ملف (حدد اسم الملف).
  • .exit: يخرج من repl (نفس الضغط على ctrl-C مرتين).

يعرف REPL متى تكتب عبارة متعددة الأسطر دون الحاجة إلى استدعاء .editor. على سبيل المثال، إذا بدأت في كتابة تكرار مثل هذا:

javascript
[1, 2,3].foxEach(num=>{

وإذا ضغطت على Enter، سينتقل REPL إلى سطر جديد يبدأ بـ 3 نقاط، مما يشير إلى أنه يمكنك الآن المتابعة للعمل على هذا الكتلة.

javascript
1... console.log (num)
2...}

إذا كتبت .break في نهاية السطر، فسيتوقف الوضع متعدد الأسطر ولن يتم تنفيذ العبارة.

تشغيل REPL من ملف JavaScript

يمكننا استيراد REPL في ملف JavaScript باستخدام repl.

javascript
const repl = require('node:repl');

باستخدام متغير repl، يمكننا إجراء عمليات مختلفة. لبدء موجه أوامر REPL، اكتب السطر التالي:

javascript
repl.start();

قم بتشغيل الملف في سطر الأوامر.

bash
node repl.js

يمكنك تمرير سلسلة تظهر عند بدء REPL. الافتراضي هو '>' (مع مسافة لاحقة)، ولكن يمكننا تحديد موجه مخصص.

javascript
// موجه بنمط Unix
const local = repl.start('$ ');

يمكنك عرض رسالة أثناء الخروج من REPL

javascript
local.on('exit', () => {
  console.log('exiting repl');
  process.exit();
});

يمكنك قراءة المزيد حول وحدة REPL في وثائق repl.