משתני סביבה
חלק מהיחידה יסודות 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. שמות תלויי רישיות. הטרמינל שלצד הקוד שלך לא מגדיר משתנים, ולכן הוא תמיד מציג את ברירת המחדל.
אתגר
קלההערות שלך צריכות לציין למי הן שייכות. השם מגיע ממשתנה סביבה, הגדרה בעלת שם שהמעטפת מעבירה לתוכנית, ולא מהמילים שהוקלדו אחרי הפקודה.
- ב־
notes.js, בענףlist, קרא את משתנה הסביבהNOTES_OWNER. - לפני
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
1הרצת JavaScript ב-Node
שלום, Nodeקריאת הפקודהארגומנטים של שורת הפקודהפקודותתרגלו בעצמכם: Express אונליין