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 サイトの他の関連記事を参照してください。