Exécuter des binaires en ligne de commande avec Node.js
Dans Ruby, vous pouvez exécuter des binaires tiers en utilisant la méthode système. Dans Node.js, il existe deux options pour exécuter des binaires en ligne de commande : child_process.exec et child_process.spawn.
Sortie tamponnée avec child_process.exec
Utilisez child_process. exec si vous souhaitez recevoir l'intégralité du résultat de la commande à une fois.
const { exec } = require('child_process'); exec('cat *.js bad_file | wc -l', (err, stdout, stderr) => { if (err) { // Handle error } else { console.log(`stdout: ${stdout}`); console.log(`stderr: ${stderr}`); } });
Sortie en streaming avec child_process.spawn
Utilisez child_process.spawn si vous préférez recevoir la sortie progressivement en morceaux sous forme de flux.
const { spawn } = require('child_process'); const child = spawn('ls', ['-lh', '/usr']); child.stdout.on('data', (chunk) => { // Data from standard output is here as buffers }); child.on('close', (code) => { console.log(`child process exited with code ${code}`); });
Exécution synchrone
Pour exécution synchrone (non recommandée pour les sorties volumineuses), utilisez les méthodes child_process.execSync et child_process.spawnSync.
Remarque : Pour les versions Node.js antérieures à ES5, reportez-vous au code suivant pour la gestion exécution en ligne de commande :
Sortie tamponnée avec child_process.exec
var exec = require('child_process').exec; var cmd = 'prince -v builds/pdf/book.html -o builds/pdf/book.pdf'; exec(cmd, function(error, stdout, stderr) { // command output is in stdout });
Sortie en streaming avec child_process.spawn
var spawn = require('child_process').spawn; var child = spawn('prince', [ '-v', 'builds/pdf/book.html', '-o', 'builds/pdf/book.pdf' ]); child.stdout.on('data', function(chunk) { // output will be here in chunks });
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!