Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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 オブジェクトを生成して返します。

関連コンテンツ