É possível executar um programa externo no node.js? Existe um equivalente ao Python os.system()
ou a qualquer biblioteca que adicione essa funcionalidade?
É possível executar um programa externo no node.js? Existe um equivalente ao Python os.system()
ou a qualquer biblioteca que adicione essa funcionalidade?
Respostas:
var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr){
// result
});
exec tem limitação de memória do tamanho do buffer de 512k. Nesse caso, é melhor usar a desova. Com spawn, é possível acessar stdout do comando executado em tempo de execução
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);
});
stderr
vez de stdout
. No meu caso, embora o close
é nunca mais ...
A maneira mais simples é:
const {exec} = require("child_process")
exec('yourApp').unref()
unref é necessário para finalizar seu processo sem aguardar "yourApp"
Aqui estão os documentos executivos
Na documentação do Node.js.
O nó fornece um recurso de popen tridirecional (3) por meio da classe ChildProcess.
Consulte http://nodejs.org/docs/v0.4.6/api/child_processes.html
child_process
módulo Consulte a documentação , que fornece vários exemplos claros de vários casos de uso.