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

  • Charles Griffin Gibson

    Charles Grif

    26 NİSAN 2006
  • Greater Than Gatsby Photoshop Actions & Lightroom Presets

    Greater Than

    11 ŞUBAT 2013
  • Influencer Plus

    Influencer P

    2 Ocak 2013