process.argvで引数を受け取り、環境変数を読み、終了コードを返すスクリプトを書きましょう。
このレッスンを Kodokon で開くあなたはすでにコマンドラインのプログラムを使っています。node、npm、gitなどです。それぞれが引数、つまり名前のあとに打ち込まれる単語を受け取り、それが挙動を変えます。自分でも書いてみましょう。Nodeはグローバルオブジェクトprocessを公開しています。これは現在実行中のプログラムを表します。process.versionで出会いましたね。そのプロパティprocess.argvは配列で、次のものを含みます。インデックス0にNodeへのパス、インデックス1にスクリプトへのパス、そしてインデックス2以降に、ユーザーが実際に打ち込んだ引数です。
console.log(process.argv);
const args = process.argv.slice(2);
console.log("Your arguments:", args);第二の情報源です。環境変数です。これは、起動時にシステムからプログラムへ提供される名前と値のペアです。設定に使われます。秘密のAPIキー、デバッグモード、データベースのアドレスなどです。process.envオブジェクトの中で読み取ります。存在しない変数はundefinedです。たとえば??演算子を使って、常にデフォルト値を用意しておきましょう。
const level = process.env.LOG_LEVEL ?? "info";
console.log("Log level:", level);LOG_LEVEL=debug node config.jsプログラムが終わるとき、システムに終了コードを返します。物事がどう進んだかを要約する数値です。普遍的な慣習です。0は"成功"を意味し、それ以外の値はエラーを知らせます。他のツールやスクリプトが、すべてうまくいったかを知るために確認するのがこれです。process.exit(1)はコード1でスクリプトを即座に止めます。エラーメッセージにはconsole.errorも使いましょう。これはエラー出力(stderr)、つまり通常の出力とは別のチャンネルに書き出します。すべてを一つの完全なスクリプトにまとめてみましょう。
const name = process.argv[2];
if (!name) {
console.error("Usage: node greet.js <name>");
process.exit(1);
}
console.log(`Hello, ${name}!`);