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

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

Linda Hamilton
リリース: 2024-12-10 01:58:17
オリジナル
436 人が閲覧しました

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

Node.js でコマンド ライン バイナリを実行する

Ruby では、システム メソッドを使用してサードパーティのバイナリを実行できます。 Node.js では、コマンド ライン バイナリを実行するためのオプションが 2 つあります: child_process.exec と child_process.spawn。

child_process.exec によるバッファ出力

child_process を使用します。コマンドの出力全体を受け取りたい場合は、exec を実行します。

const { exec } = require('child_process');
exec('cat *.js bad_file | wc -l', (err, stdout, stderr) => {
  if (err) {
    // Handle error
  } else {
    console.log(`stdout: ${stdout}`);
    console.log(`stderr: ${stderr}`);
  }
});
ログイン後にコピー

child_process.spawn によるストリーム出力

出力をストリームとしてチャンクで徐々に受信したい場合は、child_process.spawn を使用します。

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

child.stdout.on('data', (chunk) => {
  // Data from standard output is here as buffers
});

child.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});
ログイン後にコピー

同期実行

同期実行の場合 (大規模な出力には推奨されません)、child_process.execSync メソッドと child_process.spawnSync メソッドを使用します。

注: Node.js の場合ES5 より前のバージョンの場合、コマンド ラインの処理については次のコードを参照してください。実行:

child_process.exec によるバッファリングされた出力

var exec = require('child_process').exec;
var cmd = 'prince -v builds/pdf/book.html -o builds/pdf/book.pdf';

exec(cmd, function(error, stdout, stderr) {
  // command output is in stdout
});
ログイン後にコピー

child_process.spawn によるストリーミング出力

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

child.stdout.on('data', function(chunk) {
  // output will be here in chunks
});
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート