Menu
CoddyTech

コマンド

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

このツールはいくつかの処理を行い、最初の単語がどの処理を行うかを示します。

分割代入では、最初の単語を取り出し、残りを配列にまとめます。

// node calc.js double 4
const [action, ...rest] = process.argv.slice(2);
if (action === 'double') {
    console.log(Number(rest[0]) * 2);
}

actionは最初の単語で、restにはその後の単語がすべて入ります。rest.join(' ')を使うと、それらの単語を1つの文字列に戻せます。ifとelse ifを連ねて、何をするかを選びます。最後のelseは、入力ミスも含め、想定していなかった単語をすべて処理します。

challenge icon

チャレンジ

簡単

このツールはいくつかの処理を行い、node notes.jsの後に続く最初の単語で、どの処理を行うかが決まります。これで、addとlistの2つのコマンドと、知らない単語に対する応答を扱えるようになります。

  1. notes.jsで、最初の2行を置き換えます。node notes.jsの後の単語を分割し、最初の単語をコマンドに、それ以外のすべての単語を残りの部分にします。
  2. コマンドに応じた処理を、1つのif、else if、elseの連鎖で決めます。各コマンドは、正確に1行だけ出力します。
    • addはAdding: に続けて、残りの単語をスペースで結合して出力します。node notes.js add Buy milkはAdding: Buy milkを出力します。
    • listはNo notes yetを出力します。メモはまだどこにも保存されません。それは第3章で扱います。
    • それ以外の最初の単語の場合は、Unknown command: に続けて、その最初の単語だけを出力します。node notes.js remove 3は、3を含めずにUnknown command: removeを出力します。
  3. ほかには何も出力されてはいけません。前のレッスンでAdding:を出力する行が連鎖の外に残っていると、すべてのコマンドで実行され、listは2行出力するため、チェックに失敗します。

3つのケースはすべて、終了コード0で正常に終了します。次のレッスンでは、未知のコマンドをエラーにします。

試してみましょう:$ node notes.jsの後の入力欄に、次の各コマンドを入力してEnterキーを押してください。

  • add Buy milkはAdding: Buy milkを表示します。
  • listはNo notes yetを表示します。
  • remove 3はUnknown command: removeを表示します。
  • 大文字のLを使ったListは、Unknown command: Listを表示します。JavaScriptは大文字も含めて、テキストを1文字ずつ比較するため、Listはlistとは異なります。

自分で試してみよう

// あなたのメモツールはここから始まります。
const args = process.argv.slice(2);
console.log(`Adding: ${args.slice(1).join(' ')}`);

Node.jsの基礎のすべてのレッスン

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