JavaScriptでreadline()を使用したユーザー入力の取得とエラー処理


まず、Node.jsのreadlineモジュールをインポートします。

const readline = require('readline');

次に、readline.createInterface()メソッドを使用して、readlineのインターフェースを作成します。

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

これにより、標準入力と標準出力が接続され、ユーザーからの入力を取得する準備が整います。

以下の例では、ユーザーに名前を尋ねて入力を受け取り、それをコンソールに表示するコードを示します。

rl.question('名前を入力してください: ', (name) => {
  console.log(`こんにちは、${name}さん!`);
  rl.close();
});

rl.question()メソッドを使用して、ユーザーに対して質問を表示します。ユーザーが入力した回答は、コールバック関数の引数として渡されます。ここでは、入力された名前を取得し、コンソールに表示しています。

最後に、rl.close()メソッドを呼び出してインターフェースを閉じます。

以上が基本的なreadline()の使用方法です。しかし、ユーザーの入力にはエラーや予期しない値が含まれる可能性があるため、エラー処理も重要です。

以下の例では、ユーザーに数字の入力を求め、入力が数字であるかどうかをチェックしています。数字以外が入力された場合や、空の入力がされた場合にはエラーメッセージを表示します。

rl.question('好きな数字を入力してください: ', (answer) => {
  const number = parseInt(answer);
  if (Number.isNaN(number)) {
    console.log('有効な数字を入力してください。');
  } else {
    console.log(`入力された数字は ${number} です。`);
  }
  rl.close();
});

上記のコードでは、parseInt()関数を使用して文字列を数値に変換しています。もし変換結果がNaN(Not a Number)であれば、入力が数字ではないことを示します。

これらの例を参考にして、readline()を使用したユーザー入力の取得とエラー処理を実装してみてください。