Maison > interface Web > js tutoriel > Comment puis-je exécuter des binaires en ligne de commande à l'aide de Node.js ?

Comment puis-je exécuter des binaires en ligne de commande à l'aide de Node.js ?

Linda Hamilton
Libérer: 2024-12-10 01:58:17
original
440 Les gens l'ont consulté

How Can I Execute Command Line Binaries Using Node.js?

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}`);
  }
});
Copier après la connexion

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}`);
});
Copier après la connexion

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
});
Copier après la connexion

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
});
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal