Node.js içinden harici bir program yürütmek mümkün mü? Python'lara os.system()
veya bu işlevselliği ekleyen herhangi bir kütüphaneye eşdeğer mi?
Node.js içinden harici bir program yürütmek mümkün mü? Python'lara os.system()
veya bu işlevselliği ekleyen herhangi bir kütüphaneye eşdeğer mi?
Yanıtlar:
var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr){
// result
});
child_process
.
exec, 512k arabellek boyutunda bellek sınırlamasına sahiptir. Bu durumda spawn kullanmak daha iyidir. Spawn ile çalışma zamanında çalıştırılan komutun stdout erişebilirsiniz
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
yerine değil olabilir stdout
. Benim durumumda olsa close
asla gelmiyor ...
En basit yol:
const {exec} = require("child_process")
exec('yourApp').unref()
unref , "uygulamanızı" beklemeden sürecinizi sonlandırmak için gereklidir
İşte exec dokümanlar
Node.js belgelerinden:
Düğüm, ChildProcess sınıfı aracılığıyla üç yönlü bir popen (3) özelliği sağlar.
child_process
Modülü kullanmak istiyorsunuz . Çeşitli kullanım durumlarına birkaç açık örnek veren belgelere bakın .