Menu
CoddyTech

متغيرات البيئة

جزء من قسم أساسيات Node.js في رحلة Node.js على Coddy. الدرس 6 من 33.

تنتمي بعض الإعدادات إلى الشخص الذي يشغّل البرنامج، لا إلى الكلمات التي يكتبها بعده.

متغيرات البيئة هي سلاسل نصية مسماة يمررها الصَدَف إلى كل برنامج. يضعها Node في process.env. قيمة المتغير غير المُعيّن هي undefined. تُرجع a ?? b القيمة a، إلا إذا كانت a هي undefined أو null؛ عندها تُرجع b. لذا تكون process.env.CITY ?? 'Lisbon' هي 'Lisbon' عندما لا يكون CITY مُعيّنًا.

// CITY=Oslo node weather.js
const city = process.env.CITY ?? 'Lisbon';
console.log(`Weather for ${city}`);

على حاسوب محمول، يمكنك تعيين متغير لتشغيل واحد بكتابته قبل الأمر: يعرض CITY=Oslo node weather.js النص Weather for Oslo، بينما يعرض node weather.js العادي Lisbon. الأسماء حساسة لحالة الأحرف. لا يعيّن الطرفية الموجودة بجانب شيفرتك أي متغيرات، لذا تعرض دائمًا القيمة الافتراضية.

challenge icon

التحدي

سهل

يجب أن تذكر ملاحظاتك اسم الشخص الذي تخصه. يأتي الاسم من متغير بيئة، وهو إعداد مُسمّى يمرّره الغلاف إلى البرنامج، وليس من الكلمات المكتوبة بعد الأمر.

  1. في notes.js، في فرع list، اقرأ متغير البيئة NOTES_OWNER.
  2. قبل No notes yet، اطبع سطر عنوان: Notes for متبوعًا باسم المالك. عندما لا يكون NOTES_OWNER مضبوطًا، استخدم الكلمة you بدلًا من الاسم.

عند ضبط NOTES_OWNER على Ada، يطبع list ما يلي:

Notes for Ada
No notes yet

عندما لا يكون NOTES_OWNER مضبوطًا، يطبع:

Notes for you
No notes yet

لا تتغير الأوامر الأخرى.

جرّب ذلك: اكتب list في المربع بعد $ node notes.js واضغط Enter. سترى Notes for you، ثم No notes yet. لا يمكن للطرفية هنا ضبط متغيرات البيئة، لذلك سترى دائمًا you. عندما تضغط على «تحقق»، تُشغّل الاختبارات أيضًا list مع ضبط NOTES_OWNER على Ada وعلى Grace، وتتوقع Notes for Ada وNotes for Grace. على حاسوب محمول، يمكنك تجربة ذلك باستخدام NOTES_OWNER=Ada node notes.js list.

جرّب بنفسك

// تبدأ أداة ملاحظاتك من هنا.
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');

if (command === 'add') {
    console.log(`Adding: ${text}`);
} else if (command === 'list') {
    console.log('No notes yet');
} else {
    if (command) {
        console.error(`Unknown command: ${command}`);
    }
    console.error('Usage: node notes.js <command> [words]');
    process.exit(1);
}

جميع دروس أساسيات Node.js

تدرّب بنفسك: Playground لـ Express