如何使用流解析缓冲区中的行?

时间:2013-12-25 23:05:25

标签: javascript node.js stream

所以,我从STDIN获得了一个带换行符的文件流,但是流提供了换行符消失的缓冲区。

如何使用Stream方法处理/解析行?

util.inherits(Parser, Transform);

Parser.prototype._transform = function(data, encoding, done) {
  console.log(data.toString());
  this.push(this._parseRow(data));
  done();
};

// Parse a data row into an object
Parser.prototype._parseRow = function(row) {
  var result = row.toString().split("\r");
  var fields = result.toString().split(";");
  var bank = { a: fields[0], b: fields[1].trim() };
  return bank.toString();
};

但是输出随机有换行符。

1 个答案:

答案 0 :(得分:4)

您可以使用split模块。

var split = require('split');
process.stdin.pipe(split()).pipe(process.stdout);

请注意,拆分实际上会删除换行符,因此如果要保留换行符,则必须重新添加换行符。