我对 Node 流很熟悉,但我在为抽象代码的最佳实践而苦苦挣扎,我在单个管道步骤中重用了很多代码。
这是我今天所写内容的精简版:
inputStream
.pipe(csv.parse({columns:true})
.pipe(csv.transform(function(row) {return transform(row); }))
.pipe(csv.stringify({header: true})
.pipe(outputStream);
实际工作发生在transform()
. 唯一真正改变的是inputStream
,transform()
和outputStream
。就像我说的,这是我实际使用的精简版。我在每个管道步骤上都有很多错误处理和日志记录,这最终是我尝试抽象代码的原因。
我要写的是一个管道步骤,如下所示:
inputStream
.pipe(csvFunction(transform(row)))
.pipe(outputStream);
我正在努力理解的是如何将这些管道步骤转换为一个接受流并返回流的函数。我看过像 through2 这样的库,但我不确定这如何让我到达我想要去的地方。