Comment exécuter un programme externe depuis Node.js ?

Est-il possible d'exécuter un programme externe depuis node.js ? Existe-t-il un équivalent à Python os.system()ou à une bibliothèque qui ajoute cette fonctionnalité ?


Solution du problème

exec a une limitation de mémoire de taille de tampon de 512k. Dans ce cas, il est préférable d'utiliser spawn. Avec spawn on a accès à stdout de la commande exécutée au moment de l'exécution

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

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"