【Node.js24.x】Object::createInterface()メソッドの使い方
createInterfaceメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
createInterfaceメソッドは、Node.jsのreadlineモジュールに属し、ユーザーからの入力を読み取るためのインターフェースを作成するメソッドです。主に、コマンドラインアプリケーションなどで、標準入力(process.stdin)やファイルストリームなどの読み取り可能なストリームから、一行ずつデータを読み込む際に利用されます。
このメソッドは、入力ストリーム(input)と出力ストリーム(output)を引数として受け取り、readline.Interfaceオブジェクトを返します。返されるInterfaceオブジェクトは、ユーザーがエンターキーを押した際に発生する'line'イベントをリッスンすることで、入力された行データを取得できます。また、questionメソッドを使用すると、ユーザーにプロンプトを表示し、その回答を待つといった対話型の処理も実現できます。
例えば、ユーザーに名前を尋ね、その回答に基づいて処理を進めるような対話型コマンドラインツールを作成する場合に非常に有効です。readline.Interfaceオブジェクトは、close()メソッドを呼び出すことで、作成されたインターフェースを閉じ、関連するリソースを解放することができます。このメソッドを利用することで、Node.jsアプリケーションに柔軟な対話機能を追加し、ユーザーエクスペリエンスを向上させることが可能になります。
構文(syntax)
const readline = require('node:readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
引数(parameters)
options
- input: ReadableStream | Iterable<string> | AsyncIterable<string>: 標準入力ストリーム、文字列のイテラブル、または文字列の非同期イテラブルを指定します。
- output: WritableStream: 標準出力ストリームを指定します。
- terminal: boolean: インターフェイスをターミナルとして扱うかどうかを指定します。
- completer: Function: 入力補完関数を指定します。
- escapeCode: string: エスケープコードを指定します。
- historySize: number: コマンド履歴のサイズを指定します。
- prompt: string: プロンプト文字列を指定します。
- tabSize: number: タブの幅を指定します。
- crlf: boolean: 改行コードにCRLFを使用するかどうかを指定します。
- stdin: ReadableStream: 標準入力ストリームを指定します。
- stdout: WritableStream: 標準出力ストリームを指定します。
- stderr: WritableStream: 標準エラー出力ストリームを指定します。
- terminal: boolean: インターフェイスをターミナルとして扱うかどうかを指定します。
- historySize: number: コマンド履歴のサイズを指定します。
- historyTable: { [key: string]: string[] }: コマンド履歴テーブルを指定します。
- completer: Function: 入力補完関数を指定します。
- pauseStreams: boolean: ストリームを一時停止するかどうかを指定します。
戻り値(return)
readline.Interface
このメソッドは、標準入力やファイルなどの入力ストリームと、標準出力やファイルなどの出力ストリームを関連付け、対話的な操作を可能にする readline.Interface オブジェクトを生成して返します。