Rumah >hujung hadapan web >tutorial js >Bagaimana untuk 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:
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}`); });
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}`); });
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);
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!