首页 >web前端 >js教程 >如何使用'child_process”在 Node.js 中执行命令行二进制文件?

如何使用'child_process”在 Node.js 中执行命令行二进制文件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-05 16:55:12757浏览

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

使用 Node.js 执行命令行二进制文件

使用 child_process 模块从 Node.js 执行第三方命令行二进制文件非常简单。

使用 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 实例

注意: 对于 Node.js 版本 0.11.12 及更高版本,以上示例适用。对于早期版本,请参阅提供的答案中包含的旧代码。

以上是如何使用'child_process”在 Node.js 中执行命令行二进制文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn