Node.js は、ユーザーがファイルまたはコマンド ラインから直接 JavaScript コードを実行できるようにする、よく知られたオープンソースの無料 JavaScript ランタイム環境です。ファイルから JavaScript コードを実行するには、外部の「. js 」ファイル コマンドを実行する間、コマンド ラインは JavaScript コードを 1 行ずつ直接実行します。
場合によっては、ユーザーはコマンド ラインから Node.js アプリケーションを起動する際に、「 ノード<ファイル名> ”。このような状況では、ユーザーはその情報を「.」ファイルに書き込むのではなく、実行コマンドの入力として直接渡す必要があります。 js ' ファイル。
この記事では、Node.js でコマンド ラインからの入力を受け入れるために考えられるすべての方法について説明します。
Node.js でコマンドラインからの入力を受け入れるにはどうすればよいですか?
Node.js は、コマンド ラインからの入力を受け入れる次のモジュールを提供します。
まずは「」から始めましょう 読み込まれた行 」モジュール。
前提条件 : メソッドの実際の実装に進む前に、まず「. js 」という任意の名前のファイルを作成し、すべてのソース コードをそこに書き込みます。ここでは、「」を作成しました。 索引 .js」ファイル。
方法 1: 「readline」モジュールを使用してコマンド ラインから入力を受け入れる
” 読み込まれた行 」モジュールは、読み取り可能なストリームからユーザー入力を読み取り、その応答を結果の出力として返すためのインターフェイスを作成します。これは組み込みモジュールであるため、ユーザーは「」を使用してインストールせずに、Node.js アプリケーションに直接インポートできます。 npm ”。
このシナリオでは、コマンド ラインから入力を取得し、出力画面に出力するために使用されます。実際の実装は次のとおりです。
定数 読み込まれた行 = 必要とする ( '読み込まれた行' )定数 rl = 読み込まれた行。 インターフェイスの作成 ( {
入力 : プロセス。 標準入力 、
出力 : プロセス。 標準出力
} )
アールル。 質問 ( 「最高のプラットフォーム」 のために 技術的な内容 ? ` 、 Webサイト => {
アールル。 質問 ( `どのカテゴリーを調べたいですか ? ` 、 カテゴリー => {
コンソール。 ログ ( `ウェブサイト : $ { Webサイト } 、 カテゴリー : $ { カテゴリー } ` )
アールル。 近い ( )
} )
} )
上記のコード行の説明は次のとおりです。
- まず、「 必要とする ()' メソッドは ' 読み込まれた行 」モジュールを現在の Node.js プロジェクトに追加します。
- 次に、「 インターフェイスの作成 ()」メソッドは、「 入出力 ” がオブジェクトとしてストリーミングされます。 ” 入力 ” ストリームは” を使用します プロセスの標準入力 ” ユーザーから入力を受け取るためのプロパティ。
- ” 出力 ” ストリームは” を利用します。 プロセス.stdout 」 入力ストリームを読み取り、指定された入力ストリームの標準出力として出力するためのプロパティ。
- その後、「 rl.質問 ()」メソッドはユーザーからの入力を受け取ります。最初の引数として質問を渡し、2 番目の引数としてコールバック関数を渡します。指定されたコールバック矢印関数は、ユーザーが入力した値を取得します。
- 与えられた「」の定義では、 Webサイト '、 そしてその ' カテゴリー ” コールバック矢印関数、” コンソール.ログ ()」メソッドを使用して、入力された値を表示します。
- 最後に、「 rl.close ()」メソッドは、上記で作成したインターフェイスを閉じます。
出力
「」を開始します。 索引 .js」ファイルを作成するには、指定されたコマンドを実行します。
ノードインデックス。 js次の出力は、コマンド ラインからユーザー入力を取得し、入力された値を標準出力として表示する readline インターフェイスを示しています。
方法 2: 「readline-sync」モジュールを使用してコマンドラインから入力を受け入れる
” 読み取りライン同期 」は、ハードコードされた質問に関連する情報を同期的に取得し、将来の操作のために対応する回答を保存するサードパーティ モジュールです。これは、コマンド ラインからのクライアントとサーバー間の通信として機能します。
非同期モジュールと同期モジュールの主な違いは、「 非同期 」は、指定されたタスクが実行されなくなるまでソース コードの実行をブロックしますが、同期モジュールはコードを 1 行ずつ順次実行します。
「readline-sync」モジュールをインストールする
の 「リードライン同期」 module は組み込みモジュールではないため、以下のコマンドを実行して手動でインストールする必要があります。
npm インストール readline - 同期する出力は、readline-sync モジュールが現在の Node.js プロジェクトに追加されたことを示しています。
ここで、「」を使用してください。 読み取りライン同期 ” モジュールは、実際には指定されたコード スニペットに従うことで作成できます。
だった 読み取りライン同期 = 必要とする ( '読み取りライン同期' ) ;だった 従業員名 = 読み取りライン同期。 質問 ( '従業員名: ' ) ;
だった JD = 読み取りライン同期。 質問 ( '仕事内容: ' ) ;
だった 会社 = 読み取りライン同期。 質問 ( '会社: ' 、 {
} ) ;
コンソール。 ログ ( 従業員名 + ' として機能します ' + JD + ' で ' + 会社 ) ;
上記のコードの説明は次のとおりです。
- まず、「 読み取りライン同期 ” モジュールはファイル内にインポートされ、そのオブジェクトは新しい変数に保存されます” 読み取りライン同期 ”。
- 次に、「」を使用してクエリが尋ねられます。 質問 ()」メソッドを引数として指定します。
- 次の質問も同様の手順で行います。
- その後、「 コンソール.ログ ()」メソッドは、入力された値を引用符で囲まれた文字列とともに表示するために使用されます。
出力
「」を実行します。 索引 .js」ファイル:
ノードインデックス。 js出力は、ユーザーからの入力が同期的に取得され、「」を使用して表示されたことを示しています。 読み取りライン同期 ” モジュール:
方法 3: 「prompt」モジュールを使用してコマンドラインから入力を受け入れる
” プロンプト 」は、ユーザー入力を変数の値として保存し、結果の出力として取得するプロンプト関数を作成する非同期モジュールです。読み取りおよび書き込み可能なストリームを明示的に設定する必要がないため、「 読み込まれた行 」モジュール。
「プロンプト」モジュールをインストールする
” プロンプト 「」はサードパーティのモジュールでもあり、「」の助けを借りて簡単にインストールできます。 npm ' このようにして:
npmインストールプロンプト -- 保存上記のコマンドでは、「 -保存 「」フラグは「」を追加します プロンプト ” モジュールを” パッケージ.json ' ファイル。
」と分析できる。 プロンプト ” が現在の Node.js プロジェクトに追加されました。
ここで、インストールされた「 プロンプト 」モジュールは、実際には次のコード スニペットを使用して作成されます。
定数 プロンプト = 必要とする ( 'プロンプト' )プロンプト。 始める ( )
プロンプト。 得る ( [ '著者名' 、 'カテゴリー' 】 、 ( エラー 、 結果 ) => {
もし ( エラー ) {
投げる エラー
} それ以外 {
コンソール。 ログ ( `$ { 結果。 著者名 } $で動作します { 結果。 カテゴリー } ` )
}
} )
上記のコード ブロックでは次のようになります。
- ” 必要とする ()' メソッドは ' プロンプト 」モジュールをプロジェクトに追加します。
- ” 始める ()」メソッドはプロンプトを開始します。
- ” 得る ()」メソッドは、コマンドライン経由でユーザーからの入力を受け取ります。最初と 2 番目のパラメーターとしてプロパティ名とコールバック アロー関数を指定します。
- 「」を使用したコールバック関数 エラー ' そして ' 結果 ”パラメータは”を定義します if-else ' 声明。
- 何らかのタイプのエラーが発生した場合、「 もし ” ブロックを使用するとエラーがスローされます。それ以外の場合は、” それ以外 ” ブロックは、指定されたプロパティの値を出力として表示します。
出力
「」を実行します 索引 .js」ファイル:
ノードインデックス。 js次の出力は、指定されたプロパティに基づいてユーザー入力を取得し、その値を出力として取得します。
方法 4: 「inquirer」モジュールを使用してコマンド ラインから入力を受け入れる
Node.js では、「 質問者 」は、コマンドラインから入力を取得する簡単な方法です。ユーザーから入力を受け取り、「」を使用して出力を返す便利なメソッドがいくつか付属しています。 答え ” オブジェクトと”。 それから ()」組み込みメソッド。
これは、リスト、オプション、入力、チェックボックスなど、コマンド ラインを通じてユーザーにさまざまな種類の質問をするのに役立ちます。これは、コマンド ライン インターフェイスをクエリベースのタスクに対して対話型にする便利な方法を提供します。
「」の詳細ガイドに従ってください。 Node.js Inquirerを使用してコマンドラインから入力を取得する 」の実践的なデモンストレーションを行います。
ヒント: ノードのコマンドラインから引数を渡すにはどうすればよいですか?
ユーザーはコマンドラインから引数を渡すこともできます。この目的のために、「 プロセス.argv ”プロパティを使用することができます。 ” 引数 ” は、「プロセス」モジュールの組み込みプロパティであり、「」を使用して Node.js アプリケーションを実行するときにコマンド ラインから引数を渡すために使用されます。 ノード<ファイル名> ' 指示。
「」の詳細ガイドに従ってください。 Node.js のコマンドラインから引数を渡す 」の実践的なデモンストレーションを行います。
Node.js でコマンド ラインから入力を受け入れることについては以上です。
結論
コマンドラインからの入力を受け入れるには、非同期の「 読み込まれた行 ”、または同期の” 読み取りライン同期 」モジュール。また、「」からも実行できます。 プロンプト ' または ' 質問者 」モジュール。 「」を除く レッドライン同期 ” モジュール、残りのモジュールはすべて非同期です。この記事では、Node.js でコマンド ラインから入力を受け入れるために考えられるすべての方法について説明しました。