9

私はJavaScriptでのプログラミングに不慣れです。input.jsonを実行する.jsファイルを作成するタスクが与えられました。私はそれをそのように実行することになっています:

./name.js input.json

このプロセスにnode.jsを組み込むにはどうすればよいですか?また、ターミナルにそのスクリプトを受け入れさせるにはどうすればよいですか?

ありがとう!

編集:問題を解決しました!とにかくルールのせいで自分の問題にはまだ答えられない…

#!/usr/bin/env node
var fs = require('fs');

args = []
process.argv.forEach(function (val, index, array) 
{
    args.push(val); 
});

var file = fs.readFileSync(args[2], "UTF-8", function (err, data) 
{
if (err) throw err;
});

これは本質的に私がしたことです。さまざまな投稿から見つけたものを検索して組み合わせることに時間を費やし、これを機能させました-おそらくそれは最善の方法ではありませんが、機能します。これにより、.jsonファイルがファイル変数に格納され、関数の引数として他の場所に渡されます。みんな、ありがとう。

4

3 に答える 3

11
   #!/usr/bin/env node
   var commandLineArguments = process.argv.slice(2);
   ...
于 2012-10-28T03:13:03.967 に答える
2

あまりにも明白かもしれませんが、最も簡単な方法は次のとおりです。

node ./name.js input.json
于 2012-10-28T02:59:09.680 に答える
0

多分少し遅れます。しかし、あなたの投稿は私にインスピレーションを与えました。アプリケーションにjsを使用できることを知りませんでした。私はいつもシェルスクリプトでそれをしました。nodejsを指すshe-bangを使用したソリューションは素晴らしいです。

提案をありがとう!私は同じようなことをすることになった。console.log(commandLineArguments);を実行したとき それは私に['input.json']を与えましたが、それは私が望んでいたものではありません。

今、私はあなたのコメントに答えることができます。それはあなたに[ 'input.json' ]正しいですか?は、[]それが配列で'input.json'あり、唯一のアイテムであることを示しています。したがって、その配列の最初の要素を選択する必要があります。

console.log(commandLineArguments[0]);

手遅れになってもお役に立てれば幸いです。

ありがとう:D

于 2014-02-22T19:26:39.787 に答える