ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsでコマンドラインを呼び出す方法

Nodejsでコマンドラインを呼び出す方法

PHPz
PHPzオリジナル
2023-04-17 16:36:162079ブラウズ

Node.js は、Web アプリケーションやコマンド ライン ツールの開発で広く使用されている、拡張性の高いオープン ソース JavaScript プラットフォームです。 Node.js では、サブプロセス API を使用してオペレーティング システムのコマンド ラインにアクセスし、システム コマンドを実行できます。この記事では、サブプロセス API を使用して Node.js でコマンド ラインを呼び出す方法を紹介します。


子プロセス API の概要

Node.js は child_process モジュールを提供します。これにより、Node.js プログラムで子プロセスを作成し、それらと対話できるようになります。コマンドラインは、このモジュールを通じて呼び出すことができます。

child_process モジュールで最も一般的に使用される 2 つの API は、spawn と exec です。 spawn は子プロセスを開始してコマンド ラインを実行し、プロセスと対話できるオブジェクトを返します。exec はコマンド ラインを実行して stdout と stderr を返す非同期関数です。

spawn メソッド

spawn メソッドは、コマンド ラインを実行するための新しいプロセスを開始するために使用されます。このメソッドは、実行するコマンドとパラメータ配列の 2 つのパラメータを受け入れます。

例:

const { spawn } = require('child_process');
const ls = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
  console.error(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`子进程退出码:${code}`);
});

ここでは、spawn メソッドを使用してコマンド「ls -lh /usr」を実行します。このメソッドは、子プロセスと対話するために使用できる stdin、stdout、および stderr プロパティを使用できる ChildProcess オブジェクトを返します。この例では、子プロセスによって出力されたデータとエラー情報をキャプチャするために、子プロセスの stdout イベントと stderr イベントをリッスンします。子プロセスが終了すると、その close イベントもリッスンします。

exec メソッド

exec メソッドを使用すると、コマンド ラインを実行し、コマンド ラインの stdout および stderr 出力を返すことができます。このメソッドは、実行するコマンドと、stdout、stderr、およびエラー オブジェクトの 3 つのパラメータを取るコールバック関数の 2 つのパラメータを受け入れます。

例:

const { exec } = require('child_process');

exec('ls', (err, stdout, stderr) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.error(`stderr: ${stderr}`);
});

ここでは、exec メソッドを使用してコマンド「ls」を実行します。コールバック関数では、stdout および stderr 出力、および発生する可能性のあるエラーをキャプチャします。

コマンド ラインの操作

コマンド ラインを呼び出してコマンドを実行するだけでなく、Node.js プログラムのコマンド ラインを操作することもできます。 spawn メソッドと exec メソッドの両方で、子プロセスに入力を送信できる stdin 属性が提供されます。

たとえば、Windows で Node.js プログラムを起動し、コマンド ラインに run コマンドを入力します。

const { spawn } = require('child_process');
const node = spawn('node');
node.stdin.write('console.log("Hello, world!");\n');
node.stdin.write('process.exit();\n');

ここでは、spawn メソッドを使用して新しい Node.js プロセスを開始し、 stdin 属性を通じて JavaScript プログラムをプロセスに送信します。プログラムは「Hello, world!」と出力して終了します。

概要

この記事では、サブプロセス API を使用して Node.js のコマンド ラインを呼び出す方法を紹介します。私たちは spawn メソッドと exec メソッドの使用法を学び、コマンド ラインと対話する方法を学びました。サブプロセス API を使用すると、Node.js でコマンド ラインを簡単に実行できるようになり、Node.js のアプリケーション シナリオがさらに強化されます。

以上がNodejsでコマンドラインを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。