2012-04-19 20 views
6

मैं डिस्क उपयोग का विश्लेषण करने के लिए एक नोड.जेएस स्क्रिप्ट बनाने की कोशिश कर रहा हूं। इसके लिए, मैं du पर बाहर निकलता हूं, लेकिन मुझे यह पता लगाने में परेशानी हो रही है कि लाइन प्रक्रिया से लाइन प्रक्रिया से आउटपुट को कैसे पढ़ा जाए।Node.js में लाइन द्वारा child_process लाइन से कैसे पढ़ा जाए?

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' सिर्फ डेटा का हिस्सा पढ़ता है, और जब तक readline माना जाता है कि लाइन द्वारा अपने इनपुट विभाजित करना चाहिए, इसके बजाय मैं ठीक उसी डेटा प्राप्त (du.stdout नहीं है, यहाँ क्या मैं अब तक की कोशिश की है है एक बफर देता है, लेकिन .toString() पर कॉल करने से मुझे वही डेटा मिलता है जो मुझे linereader के साथ मिला)।

उत्तर

2

रीडलाइन नोड.जे.एस. के वर्तमान स्थिर संस्करण (0.6.14) में टूट गई है। हम एक ही समस्या यहाँ था:

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

हालांकि, कि आप के लिए यह समस्या ठीक हो जाती TooTallNate से कोड का एक असली त्वरित टुकड़ा है: https://gist.github.com/1785026

वहाँ एक पुल अनुरोध इस में बाद में तय करने के लिए है संस्करण, और यह 0.7.8 रिलीज में होना चाहिए।

+0

आह, मैं देखता हूं। थोड़ा सा दुखी :) – mikl

संबंधित मुद्दे