MENU

サーバーサイド

【Node.js】 コマンドラインからの引数を取得する方法

更新日:2020/06/11

 

Node.jsはブラウザ版のJavaScriptと異なり、コマンドラインから起動できる。
そうなると、起動時に引数を指定することもある。

 

そこでコマンドラインから引数を受け取る方法をお伝えします。

 

■お願い
去年ECMAScript2020を頑張って日本語訳しましたが、誰も見てくれません・・・
誰かみて!!
【JavaScript】 学習のためECMAScript2020を日本語訳してみました

コマンドライン引数はargvプロパティ配列で受け取る

 

コマンドラインの引数は、processオブジェクトのargvプロパティに配列でセットされています。

 

ただしargvプロパティには、引数だけでなくコマンドライン全てがセットされています。

 

インデックス 指定例 内容
0 process.argv[0] "node"
(実行プログラム名)
1 process.argv[1] スクリプト名
2以降 process.argv[2] コマンドライン引数

コマンドラインを取得する関数

 

次のコードは、コマンドラインを要素別に分解してオブジェクトとして返す関数です。

 


const getCommand = () => (  {
        programName : process.argv.length > 0 ? process.argv[0] : null,
        scriptName : process.argv.length > 1 ? process.argv[1] : null,
        command : process.argv.filter( (e,i)=>i>1)
    });

 

 

引数:なし

 

返り値:オブジェクト

 

    オブジェクト{
        programName : インデックス[0] 実行プログラム名
        scriptName  :  インデックス[1]  スクリプト名
        command : インデックス2以降 コマンドライン引数の配列
    }

 

■実行例

 

commandGet.js

 


console.log( getCommand() );

 

コマンドライン

 


>node commandGet.js  a b 12345 "abcd"
{
  programName: 'node.exe',
  scriptName: 'commandGet.js',
  command: [ 'a', 'b', '12345', 'abcd' ]
}

 

記事の内容について

 

こんにちはけーちゃんです。
説明するのって難しいですね。


「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。

そんなときは、ご意見もらえたら嬉しいです。

ご意見はこちら。
https://note.affi-sapo-sv.com/info.php

【お願い】

お願い

■このページのURL


■このページのタイトル


■リンクタグ