【问题标题】:How to parse lines from a Buffer with streams?如何使用流解析缓冲区中的行?
【发布时间】:2014-01-13 16:14:59
【问题描述】:

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

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

util.inherits(解析器,变换); Parser.prototype._transform = 函数(数据,编码,完成){ console.log(data.toString()); this.push(this._parseRow(data)); 完毕(); }; // 将数据行解析为对象 Parser.prototype._parseRow = function(row) { var 结果 = row.toString().split("\r"); var fields = result.toString().split(";"); var bank = { a: fields[0], b: fields[1].trim() }; 返回银行.toString(); };

但是输出随机有换行符。

【问题讨论】:

  • 尝试使用换行符\n而不是回车符\r

标签: javascript node.js stream


【解决方案1】:

您可以使用split 模块。

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

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

【讨论】:

  • 谢谢,这个答案实际上有助于提高我对流的理解!
猜你喜欢
  • 2020-09-11
  • 2021-11-13
  • 2015-04-22
  • 1970-01-01
  • 2018-11-21
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多