Apakah mungkin untuk menjalankan program eksternal dari dalam node.js? Apakah ada yang setara dengan Python os.system()
atau pustaka apa pun yang menambahkan fungsi ini?
Apakah mungkin untuk menjalankan program eksternal dari dalam node.js? Apakah ada yang setara dengan Python os.system()
atau pustaka apa pun yang menambahkan fungsi ini?
Jawaban:
var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr){
// result
});
exec memiliki batasan memori dengan ukuran buffer 512k. Dalam hal ini lebih baik menggunakan spawn. Dengan spawn seseorang memiliki akses ke stdout dari perintah yang dieksekusi pada saat dijalankan
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
bukan stdout
. Dalam kasus saya meskipun close
tidak pernah datang ...
Dari dokumentasi Node.js:
Node menyediakan fasilitas popen (3) tri-directional melalui kelas ChildProcess.
Lihat http://nodejs.org/docs/v0.4.6/api/child_processes.html
child_process
modul. Lihat dokumentasinya , yang memberikan beberapa contoh jelas dari berbagai kasus penggunaan.