環境変数
CoddyのNode.jsジャーニー「Node.jsの基礎」セクションの一部。レッスン 5/24。
プログラムを実行する人に属する設定もあります。プログラムの後に入力する言葉に属するわけではありません。
環境変数は、シェルがすべてのプログラムに渡す名前付きの文字列です。Nodeではこれらをprocess.envに格納します。設定されていない変数はundefinedなので、??を使うと既定値を指定できます。
// CITY=Oslo node weather.js
const city = process.env.CITY ?? 'Lisbon';
console.log(`Weather for ${city}`);ノートパソコンでは、コマンドの前に書くことで、1回の実行に限って値を設定できます。CITY=Oslo node weather.jsを実行するとWeather for Osloが表示され、単にnode weather.jsを実行するとLisbonが表示されます。名前では大文字と小文字が区別されます。コードの隣にあるターミナルでは変数を設定していないため、常に既定値が表示されます。
チャレンジ
簡単listは最初に見出しを出力します:Notes for <NOTES_OWNER>。変数が設定されていない場合は、Notes for youを出力します。No notes yetは次の行に表示されます。
node notes.js list を実行してください。チェックでは 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);
}