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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-05 16:55:12770parcourir

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

Exécuter des binaires de ligne de commande avec Node.js

L'exécution de binaires de ligne de commande tiers à partir de Node.js est simple à l'aide du module child_process.

Utiliser exec pour une sortie complète

Pour exécuter une commande et récupérer son terminez la sortie, utilisez child_process.exec :

const { exec } = require('child_process');
exec('prince -v builds/pdf/book.html -o builds/pdf/book.pdf', (err, stdout, stderr) => {
  if (err) return;
  console.log(`stdout: ${stdout}`);
  console.log(`stderr: ${stderr}`);
});

Utilisation de spawn pour Stream Output

Pour gérer les E/S de processus avec les flux, utilisez child_process.spawn :

const { spawn } = require('child_process');
const child = spawn('prince', [
  '-v', 'builds/pdf/book.html',
  '-o', 'builds/pdf/book.pdf'
]);

child.stdout.on('data', (chunk) => {
  // Output chunks are received here
});

Utilisation de execFile pour Exécutables

Pour exécuter un fichier exécutable au lieu d'une commande, utilisez child_process.execFile :

const { execFile } = require('child_process');
execFile(file, args, options, (err, stdout, stderr) => {
  // Output is retrieved in stdout
});

Fonctions synchrones

Pour les fonctions synchrones exécution, Node.js fournit des homologues synchrones à ces méthodes :

  • child_process.execSync
  • child_process.spawnSync
  • child_process.execFileSync

Ils ne renvoient pas les instances ChildProcess comme leurs instances asynchrones homologues.

Remarque : Pour les versions 0.11.12 et ultérieures de Node.js, les exemples ci-dessus s'appliquent. Pour les versions antérieures, reportez-vous au code hérité inclus dans la réponse fournie.

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!

Déclaration:
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