標準入力の方法をメモです。
2つの方法を記載します。
process.argvを使う
console.log(process.argv);
以下のように引数を指定して実行すると
$node sample.js aaa bbb ccc
結果は以下のようになります。
node(実行ファイルのフルパス(node.exe)) sample.js(スクリプトファイルのフルパス(.js)) aaa bbb ccc
引数は、3つ目に格納されています。
つまり、引数だけを取得したい場合は以下のようにします。
console.log(process.argv.slice(2));
sliceについては過去の記事で記載しているので参考にしてください。
引数はいくつでも指定することができます。
区切りは半角スペースです。
readlineを使う
async function main() { var input = ''; while(input != 'quit') { input = await readInput('何か入力してください。終了する場合は「quit」\n=> '); console.log(`入力したものは[ ` + input + ' ]'); } } function readInput(text) { var readline = require('readline').createInterface({ input: process.stdin, output: process.stdout }); return new Promise((resolve, reject) => { readline.question(text, (answer) => { resolve(answer); readline.close(); }); }); } main();
入力値が「quit」となるまで実行します。
今回使用したモジュールはreadline。
基本的に非同期で動くので、同期で動くようにawait/asyncを使用しています。
どちらも覚えておいたら、使用用途に応じて少し変えるだけでいいと思うので
とても便利だと思います。