2012-07-05 219 views
2

我打開curl在後臺下載一些ISO並通知客戶有關進度。自捲曲,wget和其他許多人清楚輸出。我想要在瀏覽器中看到curl的輸出。我不能完全管它,因爲瀏覽器不明白,它基本上是通過ncurses或者我不知道的東西來改變輸出數據。我該如何解決這個問題?管道流輸出到NodeJS中的Socket.IO

var spawn = require('child_process').spawn, 
    curl = spawn('curl', ['-oubuntu.iso','http://releases.ubuntu.com/10.04/ubuntu-10.04.4-desktop-i386.iso']); 

curl.stderr.pipe(process.stdout); // Works perfectly: 

    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    1 694M 1 13.5M 0  0 2193k  0 0:05:24 0:00:06 0:05:18 2439k 

process.on("data")並不一致,隨機數發生變化的新線等。

+0

這個問題太含糊 – ControlAltDel 2012-07-05 13:41:05

回答

1

好,process.stderr.on(「數據」)實際上是產生正確的數據,所以說這是不相符是錯的。

似乎curl只是使用進程的stderr流更新進度狀態的變化部分,這就是爲什麼每次事件觸發時都會得到不同的數據。

我找不到解決方法(檢查http://curl.haxx.se/docs/manpage.html),您顯然無法告訴curl以「原始」方式報告進度。

提示:使用捲動標誌-#時,每次觸發'data'事件時都會獲得百分比進度。

+0

使用 - #可以幫助很多,謝謝!我知道輸出是正確的,但不一致是錯誤的詞,它應該是無意義的 - 太多的終端外:) – Mustafa 2012-07-05 14:24:11