pipe道stream输出到NodeJS中的Socket.IO
我打开curl在后台下载一些ISO并通知客户有关进度。 自curl,wget和其他许多人清除输出。 我想要在浏览器中看到curl的输出。 我不能pipe它,因为浏览器不明白,它基本上是通过ncurses或我不知道的东西改变输出数据。 我该如何解决这个问题?
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")
是不一致的,随机数改变了新行等。
那么,process.stderr.on('data')实际上是产生正确的数据,所以说这是不一致的是错误的。
似乎curl只是使用进程的stderrstream更新进度状态的变化部分,这就是为什么每次事件触发时都会得到不同的数据。
我无法find解决方法(检查http://curl.haxx.se/docs/manpage.html ),你显然不能告诉curl以“原始”方式报告进度。
提示:使用curl标志-#
,每次触发“data”事件时都会获得百分比进度。
- 如何使用应用程序/ x-www-form-urlencoded头和URLSearchParams使用isomorphic-fetch进行POST
- 在Nodejs(request)中如何发送mutliPart http请求中的文件
- 如何与exec nodejs一起使用curl
- 失眠和NodeJS:“错误:对象证书不能使用给定的CA证书进行身份validation”
- 使用curl -X PUTtestingREST路由,返回404
- 如何在'request'模块的节点上写入curl'PUT'请求
- 使用Parse.com REST API和node.js中的查询 – 如何使用CURL中的数据编码
- 简单的NodeJS http请求相当于curl
- GET请求在node.js不起作用