Чи можливо виконати зовнішню програму зсередини node.js? Чи є еквівалент Python os.system()
або будь-яка бібліотека, яка додає цю функціональність?
Чи можливо виконати зовнішню програму зсередини node.js? Чи є еквівалент Python os.system()
або будь-яка бібліотека, яка додає цю функціональність?
Відповіді:
var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr){
// result
});
exec має обмеження пам'яті розміром буфера 512k. У цьому випадку краще використовувати нерест. З нерестом є доступ до 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);
});
stderr
замість цього stdout
. У моєму випадку, хоча close
це ніколи не настає ...
З документації Node.js:
Вузол забезпечує тринаправлену функцію popen (3) через клас ChildProcess.
child_process
модуль. Дивіться документацію , яка містить кілька чітких прикладів різних випадків використання.