Node.jsでコマンドラインからの入力を受け付ける

Node.jsのCLIプログラムを対話形式にするには?

Node.jsはバージョン7以降、まさにこれを実行するためのreadlineモジュールを提供しています。これはprocess.stdinストリームのような読み取り可能なストリームから入力を受け取ります。Node.jsプログラムの実行中、これはターミナルの入力であり、一度に1行ずつ処理されます。

const  = ('node:readline');

const  = .({
  : .,
  : .,
});

.(`What's your name?`,  => {
  .(`Hi ${}!`);
  .();
});

このコードはユーザーの名前を尋ね、テキストが入力されてユーザーがEnterキーを押すと、挨拶を送信します。

question()メソッドは、最初のパラメータ(質問)を表示し、ユーザーの入力を待ちます。Enterキーが押されると、コールバック関数を呼び出します。

このコールバック関数の中で、readlineインターフェースを閉じます。

readlineは他にもいくつかのメソッドを提供しています。詳細については、上記のパッケージドキュメントへのリンクを確認してください。

パスワードを要求する必要がある場合は、それをエコーバックするのではなく、*記号を表示するのが最善です。

読了時間
1 分
作成者
コントリビュート
このページを編集