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

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

Linda Hamilton
发布: 2024-12-10 01:58:17
原创
437 人浏览过

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

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

在 Ruby 中,您可以使用系统方法执行第三方二进制文件。在 Node.js 中,有两个选项用于执行命令行二进制文件:child_process.exec 和 child_process.spawn。

使用 child_process.exec 缓冲输出

使用 child_process。如果您想在以下位置接收命令的完整输出,请执行

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之前的版本,请参考以下代码处理命令行执行:

Buffered Output with 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板