未知方法process.openStdin()

我试图将grep结果input到nodejs脚本中。 我发现,我应该从process.stdin接收数据。

另外我发现了几种使用stdin的方法。 但他们是不同的,我不能find所有的信息。 我知道四种方式(前3开始与var data = "" ):

1)在search结果中最受欢迎

 process.stdin.resume(); process.stdin.setEncoding( 'utf8' ); process.stdin.on('data', function(chunk) { data += chunk; }); process.stdin.on('end', function() { console.log('data: ' + data); }); 

2)看起来像第一个,但function未知process.openStdin()

 var stdin = process.openStdin(); stdin.on('data', function(chunk) { data += chunk; }); stdin.on('end', function() { console.log('data: ' + data); }); 

3)在我读过的文档中,调用stdin.resume()将标准input改为“旧types”。 所以如果我们不叫“简历” – 我们可以使用“可读”的事件

 process.stdin.setEncoding('utf8'); process.stdin.on('readable', function() { data += process.stdin.read(); }); process.stdin.on('end', function() { console.log('data: ' + data); }); 

4)使用模块readline。 只要grep结果是多行的,并且我不需要自己拆分接收到的数据,这是非常有用的。 但是很长一段时间我都不明白为什么所有的信息都直接input到stdout。 然后,我发现我们可以传递空的对象而不是process.stdout创build接口和数据不会pipe道输出。

 var readline = require('readline'), //rl = readline.createInterface(process.stdin, process.stdout); rl = readline.createInterface(process.stdin, {}); rl.on('line', function(data) { console.log('line: ' + data); }); 

5)我自己的变种。 使用另一个模块“拆分” – 它允许从stream中读取数据并按照指定的符号(默认为\r?\n )将数据分割成chuks。 我用它来处理套接字,一旦stdin也是可读的stream – 我们可以在这里使用它。

 var split = require('split'); process.stdin.setEncoding('utf8'); process.stdin.pipe(split()).on('data', function(data) { console.log('line: ' + data); }); 

我的问题是“什么是process.openStdin();

我search了谷歌的每一个页面,但没有find这个function的任何文档!

在search的同时,我发现,nodejs的官方文档是丑陋的 – 没有提到,因为哪些版本的方法可用,没有关于许多对象/方法的详细描述,没有用户评论。 而这种方法( openStdin ) – 存在和工作,但无处描述! 跆拳道???

在写这个问题的时候我find了答案:)

它在nodejs的源代码中:

 process.openStdin = function() { process.stdin.resume(); return process.stdin; }; 

但是我想知道,为什么没有在文档中描述? 如果它只是一个私人用途的function,那为什么许多人使用这个function,