Readlineモジュールの操作
メニューを表示するにはスワイプしてください
Readlineの概要
Readlineモジュールは、Node.jsに組み込まれているモジュールで、対話的にユーザーからの入力を読み取る作業を簡単にします。プロンプトの作成、ユーザーからの応答の収集、コマンドラインインターフェースでの対話型の質疑応答セッションの構築によく使用されます。
Readlineモジュールの理解
実際の例に進む前に、Readlineモジュールが提供する基本的な概念とメソッドについて確認します。
Readlineインターフェースの作成
Readlineモジュールを使用するには、通常、入力ストリームと出力ストリームを管理するReadlineインターフェースを作成することから始めます。インターフェースの作成方法は以下の通りです。
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const rlはReadlineインターフェースを表します。readline.createInterface({ input: process.stdin, output: process.stdout })は、標準入力(process.stdin)から読み取り、標準出力(process.stdout)へ書き込むインターフェースを設定します。
ユーザー入力の収集
Readlineインターフェースを作成したら、それを使ってユーザーからの入力を収集できます。最も一般的な方法は rl.question() です:
rl.question("Please enter your name: ", (name) => {
// User input is available as `name`
console.log(`Hello, ${name}!`);
rl.close();
});
rl.question("Please enter your name: ", (name) => { ... })は指定したメッセージでユーザーに入力を促します。- コールバック関数
(name) => { ... }はユーザーが応答を入力したときに実行されます。 nameにはユーザーの入力内容が格納されます。
インターフェースの管理
Readlineインターフェースの使用が終わったら、必ず閉じることが重要です。これには rl.close() を使用します。
対話型プロンプトの作成
基本を学んだので、知識を活かしてコマンドラインのおみくじアプリケーションを作成します。ユーザーが名前を入力すると、アプリケーションがランダムな運勢メッセージを生成します。
ビデオで紹介されたコード例:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const fortunes = [
"You will find unexpected joy in the little things.",
"A new opportunity will open doors for you.",
"Adventure is just around the corner.",
"Embrace change, and good things will follow.",
"Patience will bring you great rewards.",
];
rl.question("Welcome to the Fortune Teller! What's your name? ", (name) => {
const randomIndex = Math.floor(Math.random() * fortunes.length);
const randomFortune = fortunes[randomIndex];
console.log(`Hello, ${name}! Your fortune today: ${randomFortune}`);
rl.close();
});
この例では、上記の概念を応用してインタラクティブなコマンドラインアプリケーションを作成しています。ユーザーからの入力を受け取り、アプリケーションがランダムな応答を生成します。Readlineモジュールはコマンドラインインターフェースでのユーザーとのやり取りを簡単にし、インタラクティブなCLIアプリケーションの作成に最適です。
- 1行目: 組み込みの
readlineモジュールをインポート。 - 3〜6行目:
readline.Interfaceインスタンスrlを作成。ユーザー入力と出力にprocess.stdinとprocess.stdoutストリームを使用。 - 8〜14行目: 複数のフォーチュンメッセージを含む配列
fortunesを作成。 - 16行目:
rl.question()を使ってユーザーの名前を尋ねる。コールバック関数はユーザーが入力した後に実行。 - 17行目:
Math.random()とMath.floor()を使ってランダムなインデックスを生成し、フォーチュンメッセージを選択。 - 18行目: 生成されたインデックスに格納されているフォーチュンメッセージを取得。
- 20行目: ユーザーの名前と選択されたフォーチュンを含むパーソナライズされたメッセージを表示。
- 22行目:
readlineインターフェースを閉じてやり取りを終了。
まとめ
このコードは、readlineモジュールを使ってシンプルなコマンドラインおみくじアプリケーションを作成します。ユーザーの名前を取得し、配列からランダムにフォーチュンを選択して結果を表示し、アプリケーションを終了します。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください