私はノードストリームに精通していますが、コードを抽象化するためのベストプラクティスに苦労しています。実際の作業はtransform()
で起こるノード - パイプラインを関数に抽象化する
inputStream
.pipe(csv.parse({columns:true})
.pipe(csv.transform(function(row) {return transform(row); }))
.pipe(csv.stringify({header: true})
.pipe(outputStream);
:
は、ここで私が今日書いているもののストリップダウンバージョンです。実際に変更されるのはinputStream
,transform()
、outputStream
です。私が言ったように、これは私が実際に使用しているものの剥奪されたバージョンです。私は、多くのエラー処理と各パイプステップのログを取っています。これは最終的にコードを抽象化しようとしています。私が書くために探しています何
はそうのような単一のパイプ段階、である:私は理解するのに苦労しています何
inputStream
.pipe(csvFunction(transform(row)))
.pipe(outputStream);
ストリームを受け入れ、単一の関数にそれらのパイプのステップを有効にする方法で、ストリームを返します。私はthrough2のような図書館を見てきましたが、私はどこに行くのか私にはどうなっているのか分かりません。
変換(行)参照をストリームにどのように渡すのですか?トランスフォームストリームを使用する方が良いのではないでしょうか? PassThroughはストリームを実際に処理しているよりも監視しています。 – AdamPat
ストリーム処理をどのようにパッケージ化するかによって異なります。表示されている場所に関数を置くか、参照として渡してください。もちろん、トランスフォームストリームでソリューションを実装することもできます(https://nodejs.org/api/stream.html#stream_implementing_a_transform_streamをご覧ください)。 PassThroughストリームでアイデアを見せたのは、私が見つけた単なる一番の方法でした。 – Marc