サーバーサイド

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

更新日:2020/06/11

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

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

 

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

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

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

インデックス指定例内容
0process.argv[0]"node"
(実行プログラム名)
1process.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' ]
}

更新日:2020/06/11

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

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

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

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

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

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

 

このサイトは、リンクフリーです。大歓迎です。