逐行处理stdin

时间:2014-12-15 08:03:48

标签: node.js stream pipe

我使用process.stdin.read()处理readable事件来处理文本行。在我的例子中,它一次返回一行或所有输入文本。

这可靠吗?换句话说,它可能会返回一半的线?

关键要求是尽快处理,而不是在收集所有输入数据时等待。

1 个答案:

答案 0 :(得分:0)

看看event-stream的分裂。它用于处理基于行的缓冲。

https://github.com/dominictarr/event-stream#simple-example

  var es = require('event-stream')
  var inspect = require('util').inspect

  process.stdin                        //connect streams together with `pipe`
    .pipe(es.split())                  //split stream to break on newlines
    .pipe(es.map(function (data, cb) { //turn this async function into a stream
      cb(null
        , inspect(JSON.parse(data)))   //render it nicely
    }))
    .pipe(process.stdout)              // pipe it to stdout !