まず、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()を使用したユーザー入力の取得とエラー処理を実装してみてください。