如何在Node.js中逐行读取child_process?
我正在尝试做一个Node.js脚本来分析磁盘使用情况。 为此,我掏出了du
,但我无法弄清楚如何逐行读取subprocess的输出。 以下是我迄今为止所尝试的:
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
应该按行分割它的input,而不是,而是我得到完全相同的数据(du.stdout返回一个缓冲区,但调用.toString()
它给了我与linereader
相同的数据)。
Readline在Node.js的当前稳定版本(0.6.14)中被打破。 我们在这里有同样的问题:
https://stackoverflow.com/a/10012306/362536
但是,TooTallNate中有一个真正快速的代码可以解决这个问题: https ://gist.github.com/1785026
在后来的版本中有一个pull请求来解决这个问题,它应该在0.7.8版本中。
- 在电子引用节点模块?
- 在Javascript / Node.Js中以二维数组的对象属性sorting
- 有除了V8以外的JavaScript引擎的node.js平台的任何端口或替代实现?
- 调用静态方法到Mongoose中的插件中的模式
- 当URL在浏览器中工作时,可能会导致“连接ETIMEDOUT”错误?
- 对我的React.js模块使用gulp-browserify,我在浏览器中得到'require is not defined'
- node.js:有没有办法将HTML放入i18n-node JSON转换文件?
- NodeJS – 我可以检测何时从命令行(ES6 +巴别)调用..?
- 如何仅使用mongodb nodejs驱动程序从文本search中返回选定的字段