如何在 Node.js 中执行外部程序?

是否可以从 node.js 内部执行外部程序?是否有与 Python 的 os.system()或任何添加此功能的库等价的版本?

142997 次浏览

来自 Node.js 文档:

Node 通过 ChildProcess 类提供了一个三向 popen (3)工具。

参见 http://nodejs.org/docs/v0.4.6/api/child_processes.html

var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr) {
// result
});

Exec 的缓冲区大小有512k 的内存限制。 对于 spawn,可以在运行时访问已执行命令的 stdout

var spawn = require('child_process').spawn;
var prc = spawn('java',  ['-jar', '-Xmx512M', '-Dfile.encoding=utf8', 'script/importlistings.jar']);


//noinspection JSUnresolvedFunction
prc.stdout.setEncoding('utf8');
prc.stdout.on('data', function (data) {
var str = data.toString()
var lines = str.split(/(\r?\n)/g);
console.log(lines.join(""));
});


prc.on('close', function (code) {
console.log('process exit code ' + code);
});

最简单的方法是:

const { exec } = require("child_process")
exec('yourApp').unref()

Unref 对于结束进程而不等待“ yourApp”是必要的

这里是执行 医生