Heim >Web-Frontend >js-Tutorial >Wie kann ich Befehlszeilen-Binärdateien mit Node.js ausführen?

Wie kann ich Befehlszeilen-Binärdateien mit Node.js ausführen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 01:58:17438Durchsuche

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

Befehlszeilen-Binärdateien mit Node.js ausführen

In Ruby können Sie Binärdateien von Drittanbietern mithilfe der Systemmethode ausführen. In Node.js gibt es zwei Optionen zum Ausführen von Befehlszeilenbinärdateien: child_process.exec und child_process.spawn.

Gepufferte Ausgabe mit child_process.exec

Verwenden Sie child_process. exec, wenn Sie die gesamte Ausgabe des Befehls unter erhalten möchten einmal.

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}`);
  }
});

Gestreamte Ausgabe mit child_process.spawn

Verwenden Sie child_process.spawn, wenn Sie die Ausgabe lieber schrittweise in Blöcken als Stream erhalten möchten.

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}`);
});

Synchron Ausführung

Für eine synchrone Ausführung (nicht empfohlen für große Ausgaben) verwenden Sie die Methoden child_process.execSync und child_process.spawnSync.

Hinweis: Für Node.js Versionen vor ES5 finden Sie im folgenden Code zur Handhabung der Befehlszeilenausführung:

Gepufferte Ausgabe mit 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
});

Gestreamte Ausgabe mit 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
});

Das obige ist der detaillierte Inhalt vonWie kann ich Befehlszeilen-Binärdateien mit Node.js ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn