2012-04-19 7 views
6

Disk kullanımını analiz etmek için bir Node.js betiği yapmaya çalışıyorum. Bunun için du kodluyorum, ancak çıktıyı çocuk işlem satırından satırdan okuyacağımı bulmakta zorlanıyorum.Node.js'de bir child_process satırından nasıl okunur?

var spawn = require("child_process").spawn, 
    rl = require('readline'), 
    du = spawn('du', ['/home']); 
    linereader = rl.createInterface(du.stdout, du.stdin); 

// Read line by line. 
//du.stdout.on('data', function (data) { 
linereader.on('line', function (data) { 
    console.log(data); 
}); 

du.stdout.on('data' sadece veri parçalarını okur ve readline sözde çizgiyle girişini bölünmüş gerekirken, bunun yerine Ben aynı veri almak değil, (du.stdout yapar: İşte ben bugüne kadar çalıştığım buydu bir arabellek döndürür, ancak üzerinde .toString() çağırıyor bana linereader ile aldığım aynı verileri verir).

cevap

2

Okuma dizisi, Node.js.'nin geçerli kararlı sürümünde (0.6.14) bozuk. https://gist.github.com/1785026

bu daha sonra düzeltmek için bir çekme isteği var: sizin için bu sorunu giderir TooTallNate kod gerçek bir hızlı pasajı vardır, ancak

https://stackoverflow.com/a/10/362536

: Burada aynı problem vardı sürümleri ve 0.7.8 sürümünde olmalıdır.

+0

Ah, anlıyorum. Kinda üzgün :) – mikl

İlgili konular