Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Melaksanakan Binari Baris Perintah dalam Node.js?

Bagaimana untuk Melaksanakan Binari Baris Perintah dalam Node.js?

Patricia Arquette
Lepaskan: 2024-12-27 06:46:09
asal
450 orang telah melayarinya

How to Execute Command Line Binaries in Node.js?

Melaksanakan Binari Baris Perintah dalam Node.js

Melaksanakan binari pihak ketiga ialah tugas penting apabila mengalihkan perpustakaan CLI daripada bahasa lain ke Node.js. Untuk mencapai ini dalam Node.js, terdapat beberapa modul yang tersedia:

child_process.exec

Untuk output buffer, gunakan exec:

const { exec } = require('child_process');
exec('cat *.js bad_file | wc -l', (err, stdout, stderr) => {
  if (err) return; // Node couldn't execute the command

  console.log(`stdout: ${stdout}`);
  console.log(`stderr: ${stderr}`);
});
Salin selepas log masuk

child_process.spawn

Jika anda lebih suka menerima output sebagai strim, gunakan spawn:

const { spawn } = require('child_process');
const child = spawn('ls', ['-lh', '/usr']);

// For text chunks, use `child.stdout.setEncoding('utf8');`
child.stdout.on('data', (chunk) => { /* data in chunks */ });

// Pipe the stream elsewhere
child.stderr.pipe(dest);

child.on('close', (code) => { console.log(`Exited with code ${code}`); });
Salin selepas log masuk

Pilihan Segerak

Node.js juga menyediakan rakan sejawat segerak kepada fungsi exec dan spawn:

const { execSync } = require('child_process');
let stdout = execSync('ls');

const { spawnSync} = require('child_process');
const child = spawnSync('ls', ['-lh', '/usr']);

console.log('error', child.error);
console.log('stdout ', child.stdout);
console.log('stderr ', child.stderr);
Salin selepas log masuk

Sokongan Sejarah

Untuk versi Node.js sebelum ES5, kaedah berikut adalah biasa digunakan:

// Complete output as a buffer
var exec = require('child_process').exec;
exec('prince -v builds/pdf/book.html -o builds/pdf/book.pdf',
  function(error, stdout, stderr) { // command output in stdout });

// Handling large output chunks with streams
var spawn = require('child_process').spawn;
var child = spawn('prince', ['-v', 'builds/pdf/book.html', '-o', 'builds/pdf/book.pdf']);

// Output in chunks
child.stdout.on('data', (chunk) => { /* data in chunks */ });

// Piping output
child.stdout.pipe(dest);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Binari Baris Perintah dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan