nodejsで一連のコマンドライン入力を同期的に受け入れる最良の方法は何ですか?
プログラムが印刷されるように
Enter Value for variable one
次に、ユーザーが値を入力すると、コマンドラインは次のような2番目の入力を要求する必要があります
Enter Value for variable two
等々
nodejsで一連のコマンドライン入力を同期的に受け入れる最良の方法は何ですか?
プログラムが印刷されるように
Enter Value for variable one
次に、ユーザーが値を入力すると、コマンドラインは次のような2番目の入力を要求する必要があります
Enter Value for variable two
等々
これを行う最も簡単な方法は、IMHO がユーザーに「質問」を表示し、ユーザーの回答を待つことです。これらの質問は、常に同じ (">>" のようなプロンプト) の場合もあれば、異なる場合もあります (たとえば、いくつかの変数を尋ねたい場合)。
これらの質問を表示するには、stdioを使用できます。これは、標準の入出力管理を簡素化するモジュールであり、その主な機能の 1 つはまさにあなたが望むものです。
var stdio = require('stdio');
stdio.question('What is your name?', function (err, name) {
stdio.question('Are you male or female?', ['male', 'female'], function (err, sex) {
console.log('Your name is "%s". You are "%s"', name, sex);
});
});
前のコードを実行すると、次のようになります。
What is your name?: John
Are you male or female? [male/female]: female
Your name is "john". You are "female"
stdio
可能な回答のグループを指定すると、再試行のサポートが含まれます。そうしないと、ユーザーは好きなように書くことができます。
PD: 私はstdio
作成者です。:-)
(出典:nodei.co)
特定のニーズに応じて、独自の REPL を作成できます。
http://nodejs.org/api/repl.html
repl.start()
のオプションを指定して呼び出すだけでprompt
、独自のカスタムeval
とwriter
コールバックを使用できます。
repl.start({
prompt: 'Enter value: ',
eval: function (cmd, context, filename, callback) {
// Do something
callback(/* return value goes here */);
},
writer: function (data) {
// echo out data to the console here
}
});