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 :
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!