Ответ 1
Вы хотите использовать модуль child_process
. См. документацию, которая содержит несколько ясных примеров различных вариантов использования.
Возможно ли выполнить внешнюю программу из node.js? Есть ли эквивалент Python os.system()
или любой библиотеки, которая добавляет эту функциональность?
Вы хотите использовать модуль child_process
. См. документацию, которая содержит несколько ясных примеров различных вариантов использования.
var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr){
// result
});
exec имеет ограничение памяти в размере буфера 512k. В этом случае лучше использовать икру. С помощью spawn у вас есть доступ к команде исполняемой команды во время выполнения
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
exec('yourApp').unref()
unref необходимо для завершения вашего процесса, не дожидаясь "yourApp"
Вот exec docs
Из документации Node.js:
Node предоставляет трикоординатную функцию popen (3) через класс ChildProcess.