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
Libérer: 2024-12-05 16:55:12
original
773 Les gens l'ont consulté

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

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

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

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!

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