SORU
17 Aralık 2013, Salı


Bir komut satırı Node.js ikili yürütmek

Ruby gelen CLİ bir kütüphane node.js taşıma süreci yaşıyorum. Şifremi gerektiğinde birçok üçüncü taraf ikili idam ederim. Düğüm içinde bunu nasıl emin değilim.

İşte PrinceXML bir PDF dosyasını dönüştürmek için diyorum nereye Ruby bir örnek:

cmd = system("prince -v builds/pdf/book.html -o builds/pdf/book.pdf")

Düğüm eşdeğer kodu nedir?

CEVAP
17 Aralık 2013, Salı


Yumurtlama alt işlemler için modülü de documentation belgelenmiştir. Bir komut çalıştırmak ve bir tampon olarak tam bir çıkış almak için child_process.exec kullanın:

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

Eğer akışı, çıkış büyük miktarda beklediğiniz gibi işlem çıkış kullanmanız gerekiyorsa, child_process.spawn kullanın:

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

// or if you want to send output elsewhere
child.stdout.pipe(dest);

Eğer yürütme bir dosya yerine bir komut isteyebilirsiniz kullanın child_process.execFile kabul eden hemen hemen aynı parametreler için spawn, ama dördüncü bir geri arama parametresi gibi exec. Bu biraz şöyle olabilir:

var execFile = require('child_process').execFile;
exexFile(file, args, options, function(error, stdout, stderr) {
  // command output is in stdout
});

V0.11.12, Düğüm şimdi zaman uyumlu spawn exec destekler. Yukarıdaki tüm zaman uyumsuz ve zaman uyumlu bir meslektaşı var. Onlar için belgeler here bulunabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Phandroid

    Phandroid

    26 Ocak 2009