この記事では、nodejs readline モジュールを使用して連続した入力を読み取る手順を説明します。
Node.js Readline モジュールで連続入力を読み取る方法?
連続入力とは、複数の質問に対する回答を同時に連続的に取得して保存するものです。これらの連続した質問は、ほとんどの場合、コースへの参加時または検証時に行われます。 Node.js readline モジュールを使用して連続入力を読み取る実装の例をいくつか以下に示します。
例 1: Readline モジュールと配列を使用した連続入力の読み取り
この例では、連続した入力が取得され、「」を使用して読み取られます。 読み込まれた行 」モジュール。入力は配列に保存され、そこからコンソールに表示されます。
定数 読み込まれた行 = 必要とする ( '読み込まれた行' ) ;
定数 読み取りラインインターフェイス = 読み込まれた行。 インターフェイスの作成 ( {
入力 : プロセス。 標準入力 、
出力 : プロセス。 標準出力
} )
定数 要求0 = '5月!あなたのあだ名は知っていますか? ;
定数 要求1 = '趣味は何' ;
定数 要求2 = 「何を聞くのが好きですか」 ;
定数 要求3 = '5月!あなたの好きな料理を知っていますか? ;
定数 要求4 = 'どこに住んでいますか?' ;
定数 要求5 = 「あなたの好きな色は何ですか」 ;
定数 要求6 = 「あなたの親友は誰ですか」 ;
定数 必須の到着 = [ req0、req1、req2、req3、req4、req5、req6 】 ;
解決しましょう = 」 ;
定数 要求データ = バツ => {
もし ( バツ < 必須 長さ ) {
読み取りラインインターフェイス。 質問 ( 必須の到着 [ バツ 】 、 ( 要求応答 ) => {
レス += ' \n ' + 要求応答 ;
要求データ ( バツ + 1 ) ;
} ) ;
} それ以外 {
コンソール。 ログ ( 「ありがとう」 のために 私と共有する ! $ { レス } ` ) ;
読み取りラインインターフェイス。 近い ( ) ;
}
} ;
要求データ ( 0 ) ;
上記のコード スニペットで使用されているコードの説明を以下に示します。
- 「」をインポートすることから始めます。 読み込まれた行 ” モジュールを作成し、そのオブジェクトを「」という名前の変数に保存します 読み込まれた行 ”。
- 次に、「」という名前のインターフェイスを作成します。 読み取りラインインターフェイス ' のために ' 読み込まれた行 ” を使用して標準入出力プロセスをラップするオブジェクト createInterface() ' 方法。また、すべてのリクエストとレスポンスを、「 プロセス ' 財産。
- 次に、7つの「」を作成します。 定数 」 タイプの変数を使用して、連続して尋ねる必要があるリクエストや質問を保存します。これらの定数を「」という名前の単一の配列に格納します。 必須の到着 ”。
- 新しい空の変数を作成します。 レス ” という名前のアロー関数を定義します。 要求データ ” という単一パラメータを渡します。 バツ ”。
- この関数内では、「」を利用します。 もし 」ステートメントは、指定されたパラメータの値が「」の長さより小さいかどうかを確認します。 必須の到着 ' か否か。
- true の場合、「 質問() 」メソッドがインターフェイスに適用され、配列からの各リクエストが出力に順番に表示されます。次に、対応する提供された値を引数として渡します。
- これらの引数は、すでに作成されている配列「 レス ”。
- すべてのリクエストがコンソールに順番に表示されると、「 もし ” ステートメントは false になり、” それ以外 「」の部分、「 レス ” 配列がコンソール上に表示されます。
- 最後に、readline インターフェースも「」を呼び出すことで閉じられます。 近い() ' 方法。また、「」を呼び出します。 reqData() ” 関数を実行し、初期値「」を渡します。 0 」を使用して、質問を先頭から、または配列内で使用可能な最初の質問から開始します。
ここで、「」と入力して、このファイルを含むファイルを実行します。 ノード 「」の後ろにあるキーワード ファイル名 端末上で次のように入力します。
ノード書き込み
出力は、プログラムが連続した入力を読み取り、それらすべてを一度に返したことを示しています。
例 2: Readline モジュールと再帰関数を使用した連続入力の読み取り
この方法では、再帰的アプローチが「」で使用されます。 読み込まれた行 入力ストリーム上のユーザーからの連続入力を読み取る Node.js モジュール:
定数 読む = 必要とする ( '読み込まれた行' ) ;
定数 読み取りラインインターフェイス = 読む。 インターフェイスの作成 ( {
入力 : プロセス。 標準入力 、
出力 : プロセス。 標準出力
} )
必須のArrでした = [ 】
関数 reqData ( バツ ) {
もし ( バツ > 3 )
{
可変平均 = 0
のために ( reqArr の j )
{
平均 += 番号 ( 必須の到着 [ j 】 )
}
コンソール。 ログ ( 平均 / 3 ) ;
}
それ以外
{
読み取りラインインターフェイス。 質問 ( 'を入力 ' + バツ + 「3 つのうちの数字:」 、 関数 ( 要求応答 ) {
必須 押す ( 要求応答 )
要求データ ( バツ + 1 )
} )
}
}
要求データ ( 1 ) ;
上記のコードの説明を以下に箇条書きで説明します。
- まず、「」をインポートします 読み込まれた行 新しく作成された「 書き込み.js ” ファイルを作成し、メソッド オブジェクトを “ 読む ' 変数。 「」を保存するインターフェイスを作成します。 読み込まれた行 」インターフェースを介して作成されます。 createInterface() ' 方法。
- ここで、「」という名前の空の配列を作成します。 必須の到着 ”を定義し、” reqData() ” という名前の単一パラメータも受け入れる関数 バツ ”。
- この関数はまず、指定された値が「」より大きいかどうかをチェックします。 3 ' か否か。 true の場合、「」で取得される値が取得されます。 バツ ” 変数は配列に格納され、” という名前の単一の変数に追加されます。 平均 ”。
- その後、「 平均 ” 変数は” で除算されます 3 ” 許可される最大数の長さが” であるため、平均を見つけます。 3 」と結果がコンソールに表示されます。
- その他の部分では、「 質問() ” メソッドにはインターフェース” が付属しています 読み取りラインインターフェイス ”。このメソッドは、コンソールにメッセージを表示し、匿名関数を定義します。
- この関数はユーザー入力データを受け入れ、そのデータを配列に追加します。 必須の到着 ”。また、「」の値も更新されます。 バツ ” を毎回実行し、更新された値を “ reqData() ' 関数。これにより、ユーザーは「」から始まる 3 未満の値のみを入力するようになります。 0 ”。最後に、「」を呼び出します。 reqData() 」関数を使用して実行プロセスを開始します。
ここで、「」を含むこれを実行します。 書き込み.js 」ファイルを「」と入力して、 ノード 「」の後ろにあるキーワード ファイル名 端末上で次のように入力します。
ノード書き込み出力は、再帰的アプローチと readline モジュールの組み合わせを使用して、連続した入力が読み取られ、その平均がコンソールに表示されることを確認します。
このガイドでは、Node.js readline モジュールを使用して連続した入力を読み取る手順について説明します。
結論
Node.js readline モジュールを使用して連続入力を読み取るには、まずこのモジュールを作業ファイルにインポートし、「 createInterface() ' 方法。このインターフェースは「 質問() ' 方法。ユーザーにリクエストを連続的に送信し、各リクエストの対応する応答をコールバック関数に渡して、要件に応じていくつかの操作を適用します。 readline モジュールを使用して連続入力を読み取るプロセスを学習しました。