Split2( matcher, 映射器, 选项)
断出一行并重新组装,使每行为一块.
split2 灵感来自 @ dominicarr (英语) split 模块,
它完全与它兼容.
然而,它基于Node.js核心 Transform。 。 。 .
matcher 可能是一个 String,或一个 RegExp。示例,读取文件中的每一行...
fs.createReadStream(file)
.pipe(split2())
.on('data', function (line) {
//each chunk now is a separate line!
})
split 使用与 string.split 除非它默认为"/\r?\n/",以及可选 limit 参数被忽略 .
字符串# 分割
split 在第三个参数上取一个可选选项对象,该参数
直接作为
变形
选项.
此外 .maxLength 财务报告和审定财务报表 .skipOverflow 执行选项,对内部限制
缓冲大小和流量超过极限时的行为. 没有限制,除非 maxLength 已经设定。 何时
内部缓冲大小超过 maxLength,该流默认释放出一个错误。 您也可以设置 skipOverflow 改为
真以压制错误并跳过任何导致内部缓冲超过的行 maxLength。 。 。 .
通话 .destroy 会让溪流流出 close。用它来执行清理逻辑
var splitFile = function(filename) {
var file = fs.createReadStream(filename)
return file
.pipe(split2())
.on('close', function() {
// destroy the file stream in case the split stream was destroyed
file.destroy()
})
}
var stream = splitFile('my-file.txt')
stream.destroy() // will destroy the input file stream
NDJ - 新线有限Json
split2 接受转换每行的函数.
fs.createReadStream(file)
.pipe(split2(JSON.parse))
.on('data', function (obj) {
//each chunk now is a js object
})
.on("error", function(error) {
//handling parsing errors
})
然而,在 @ dominicarr (英语) split 映射器
被包裹在试捕捉物中,而这里不是:如果你的解析逻辑可以抛出,请自己包裹. 否则,您也可以在映射器函数抛出时使用流错误处理.
许可证
版权 (c) 2014-2021, Matteo Collina 你好@matteocollina.com
允许为任何 特此准许收取或不收取费用的目的,但须符合下列条件: 版权通知和本许可通知印出于所有副本.
软件是提供的"AS是" 和权威 发布所有警报 关于这种软件,包括所有被渗透的 道德与鉴相. 绝对不可能 授权为 任何特别的、直接的、间接的、或因果的 使用、数据或方案的损失所产生的任何结果 产生于武装冲突的 与这种软件的使用或性能有关.