2012-04-19 6 views
6

디스크 사용을 분석하기 위해 Node.js 스크립트를 만들려고합니다. 이를 위해 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을 수행 여기에 지금까지 시도했습니다 무엇 버퍼를 반환하지만, 을 호출하면 나에게 linereader과 같은 데이터를 제공합니다.)

답변

2

Node.js의 현재 안정 버전 (0.6.14)에서 Readline이 손상되었습니다. https://gist.github.com/1785026

이 나중에 해결하기 위해 풀 (pull) 요청이있다 : 당신을 위해이 문제를 해결 TooTallNate에서 코드의 진짜 빨리 조각이있다, 그러나

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

: 우리는 여기에 같은 문제가 없었다 0.7.8 릴리스에 있어야합니다.

+0

아, 알겠습니다. Kinda 슬픈 :) – mikl

관련 문제