Menu
CoddyTech

環境変数

CoddyのNode.jsジャーニー「Node.jsの基礎」セクションの一部。レッスン 6/33。

プログラムを実行する人に属する設定もあります。プログラムの後に入力する言葉に属するものではありません。

環境変数は、シェルがすべてのプログラムに渡す名前付きの文字列です。Nodeでは、これらはprocess.envに格納されます。設定されていない変数はundefinedです。a ?? bはaを返します。ただし、aがundefinedまたはnullの場合は、bを返します。したがって、process.env.CITY ?? 'Lisbon'は、CITYが設定されていないときに'Lisbon'になります。

// 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を出力します。名前では大文字と小文字が区別されます。コードの横にあるターミナルでは変数を設定していないため、常に既定値が表示されます。

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

ほかのコマンドは変更しません。

試してみましょう:$ node notes.jsの後のボックスにlistと入力してEnterキーを押します。Notes for you、続いてNo notes yetと表示されます。ここのターミナルでは環境変数を設定できないため、常にyouと表示されます。「確認」を押すと、チェックではNOTES_OWNERをAdaとGraceに設定してlistも実行し、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の基礎のすべてのレッスン

自分で練習してみよう: Expressプレイグラウンド