Подтвердить что ты не робот

Возможно ли выполнить внешнюю программу из node.js?

Возможно ли выполнить внешнюю программу из node.js? Есть ли эквивалент Python os.system() или любой библиотеки, которая добавляет эту функциональность?

4b9b3361

Ответ 1

Вы хотите использовать модуль child_process. См. документацию, которая содержит несколько ясных примеров различных вариантов использования.

Ответ 2

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

Ответ 3

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);
});

Ответ 4

Самый простой способ:

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

unref необходимо для завершения вашего процесса, не дожидаясь "yourApp"

Вот exec docs