ホームページ >ウェブフロントエンド >jsチュートリアル >「child_process」を使用して Node.js でコマンド ライン バイナリを実行するにはどうすればよいですか?

「child_process」を使用して Node.js でコマンド ライン バイナリを実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-05 16:55:12722ブラウズ

How Can I Execute Command Line Binaries in Node.js Using `child_process`?

Node.js を使用したコマンド ライン バイナリの実行

Node.js からサードパーティのコマンド ライン バイナリを実行するには、child_process モジュールを使用するのが簡単です。

exec を使用して完了する出力

コマンドを実行してその完全な出力を取得するには、child_process.exec:

const { exec } = require('child_process');
exec('prince -v builds/pdf/book.html -o builds/pdf/book.pdf', (err, stdout, stderr) => {
  if (err) return;
  console.log(`stdout: ${stdout}`);
  console.log(`stderr: ${stderr}`);
});

ストリーム出力に spawn を使用する

ストリームを使用してプロセス I/O を処理するには、次を使用します。 child_process.spawn:

const { spawn } = require('child_process');
const child = spawn('prince', [
  '-v', 'builds/pdf/book.html',
  '-o', 'builds/pdf/book.pdf'
]);

child.stdout.on('data', (chunk) => {
  // Output chunks are received here
});

実行可能ファイルに execFile を使用する

コマンドの代わりに実行可能ファイルを実行するには、child_process.execFile:

const { execFile } = require('child_process');
execFile(file, args, options, (err, stdout, stderr) => {
  // Output is retrieved in stdout
});
を使用します。

同期関数

同期実行の場合、Node.js はこれらに対応する同期関数を提供します。メソッド:

  • child_process.execSync
  • child_process.spawnSync
  • child_process.execFileSync

これらは、非同期インスタンスのように ChildProcess インスタンスを返しません。 counterparts.

注: Node.js バージョン 0.11.12 以降の場合、上記の例が適用されます。以前のバージョンについては、提供された回答に含まれているレガシー コードを参照してください。

以上が「child_process」を使用して Node.js でコマンド ライン バイナリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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