私はNode.jsで書かれたウェブサーバーを持っており、特定のフォルダで起動したいと思っています。JavaScriptで引数にアクセスする方法がよくわかりません。このようにnodeを動かしています。
$ node server.js folder
ここでserver.js
は私のサーバーコードです。Node.jsのヘルプによると、これは可能だそうです。
$ node -h
Usage: node [options] script.js [arguments]
JavaScriptでこれらの引数にアクセスするにはどうすればよいのでしょうか?どういうわけか、この情報をウェブ上で見つけることができませんでした。
引数は process.argv
に格納されます。
コマンドライン引数の処理に関するノードのドキュメント](http://nodejs.org/docs/latest/api/process.html#process_process_argv)をご覧ください。
process.argv
は、コマンドライン引数を含む配列です。最初の要素は'node'で、2番目の要素はJavaScriptファイルの名前になります。次の要素には、追加のコマンドライン引数が入ります。
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
これで生成されます。
$ node process-2.js one two=three four
0: node
1: /Users/mjr/work/node/process-2.js
2: one
3: two=three
4: four
通常のjavascriptの関数が受け取るように引数を正規化するために、私はnode.jsのシェルスクリプトでこのようにしています。
var args = process.argv.slice(2);
なお、第1引数は通常nodejsへのパス、第2引数は実行中のスクリプトの場所です。