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
Patricia Arquetteasal
2024-12-27 06:46:09484semak imbas

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

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

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

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

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!

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