كيفية استخدام Node.js REPL
الأمر node
هو الأمر الذي نستخدمه لتشغيل نصوص Node.js الخاصة بنا:
node script.js
إذا قمنا بتشغيل الأمر node
بدون أي نص لتنفيذه أو بدون أي وسائط، فإننا نبدأ جلسة REPL:
node
ملاحظة
REPL تعني Read Evaluate Print Loop (حلقة القراءة والتقييم والطباعة)، وهي بيئة لغة برمجة (بشكل أساسي نافذة وحدة تحكم) تأخذ تعبيرًا واحدًا كمدخل من المستخدم وتعيد النتيجة إلى وحدة التحكم بعد التنفيذ. توفر جلسة REPL طريقة ملائمة لاختبار كود JavaScript البسيط بسرعة.
إذا جربتها الآن في جهازك الطرفي، فإليك ما سيحدث:
> node
>
يبقى الأمر في وضع الخمول وينتظر منا إدخال شيء ما.
TIP
إذا لم تكن متأكدًا من كيفية فتح جهازك الطرفي، فابحث على جوجل عن "كيفية فتح الجهاز الطرفي على نظام التشغيل الخاص بك".
REPL ينتظر منا إدخال بعض كود JavaScript، لنكون أكثر دقة.
ابدأ ببساطة وأدخل:
> console.log('test')
test
undefined
>
القيمة الأولى، test
، هي الإخراج الذي طلبنا من وحدة التحكم طباعته، ثم نحصل على undefined
وهي القيمة المرجعة لتشغيل console.log()
. قرأ Node سطر الكود هذا، وقيمه، وطبع النتيجة، ثم عاد إلى انتظار المزيد من سطور الكود. سيعيد Node تكرار هذه الخطوات الثلاث لكل جزء من الكود الذي نقوم بتنفيذه في REPL حتى نخرج من الجلسة. من هنا حصل REPL على اسمه.
يطبع Node تلقائيًا نتيجة أي سطر من كود JavaScript دون الحاجة إلى توجيهه للقيام بذلك. على سبيل المثال، اكتب السطر التالي واضغط على إدخال:
> 5==5
false
>
لاحظ الفرق في مخرجات السطرين أعلاه. طبع Node REPL undefined
بعد تنفيذ console.log()
، بينما من ناحية أخرى، طبع فقط نتيجة 5== '5'
. يجب أن تضع في اعتبارك أن الأول هو مجرد عبارة في JavaScript، والأخير هو تعبير.
في بعض الحالات، قد يحتاج الكود الذي تريد اختباره إلى عدة أسطر. على سبيل المثال، لنفترض أنك تريد تحديد دالة تولد رقمًا عشوائيًا، في جلسة REPL اكتب السطر التالي واضغط على إدخال:
function generateRandom()
...
Node REPL ذكي بما يكفي لتحديد أنك لم تنته من كتابة الكود الخاص بك بعد، وسوف ينتقل إلى وضع متعدد الأسطر لتتمكن من كتابة المزيد من الكود. الآن قم بإنهاء تعريف الدالة الخاصة بك واضغط على إدخال:
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
. على سبيل المثال، إذا بدأت في كتابة تكرار مثل هذا:
[1, 2,3].foxEach(num=>{
وإذا ضغطت على Enter، سينتقل REPL إلى سطر جديد يبدأ بـ 3 نقاط، مما يشير إلى أنه يمكنك الآن المتابعة للعمل على هذا الكتلة.
1... console.log (num)
2...}
إذا كتبت .break
في نهاية السطر، فسيتوقف الوضع متعدد الأسطر ولن يتم تنفيذ العبارة.
تشغيل REPL من ملف JavaScript
يمكننا استيراد REPL في ملف JavaScript باستخدام repl
.
const repl = require('node:repl');
باستخدام متغير repl
، يمكننا إجراء عمليات مختلفة. لبدء موجه أوامر REPL، اكتب السطر التالي:
repl.start();
قم بتشغيل الملف في سطر الأوامر.
node repl.js
يمكنك تمرير سلسلة تظهر عند بدء REPL. الافتراضي هو '>' (مع مسافة لاحقة)، ولكن يمكننا تحديد موجه مخصص.
// موجه بنمط Unix
const local = repl.start('$ ');
يمكنك عرض رسالة أثناء الخروج من REPL
local.on('exit', () => {
console.log('exiting repl');
process.exit();
});
يمكنك قراءة المزيد حول وحدة REPL في وثائق repl.