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

  • Michael Zhang

    Michael Zhan

    8 EYLÜL 2012
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010
  • theKGB65

    theKGB65

    24 Aralık 2007