1. ホーム
  2. ジャバスクリプト

[解決済み] Node.Jsで文字列からストリームを作成する方法は?

2022-04-08 05:24:30

質問

あるライブラリを使用しています。 ya-csv は、入力としてファイルまたはストリームのどちらかを期待しますが、私は文字列を持っています。

Nodeでその文字列をストリームに変換するにはどうしたらいいですか?

どのように解決するのですか?

ノード 10.17 からは、stream.Readable に from メソッドを使用すると、任意の反復記号 (配列リテラルを含む) から簡単にストリームを作成できます。

const { Readable } = require("stream")

const readable = Readable.from(["input string"])

readable.on("data", (chunk) => {
  console.log(chunk) // will be called once with `"input string"`
})

少なくとも 10.17 から 12.3 までは、文字列はそれ自体が反復可能であることに注意してください。 Readable.from("input string") は動作しますが、1文字につき1つのイベントを発生させます。 Readable.from(["input string"]) は、配列の各項目 (この場合は 1 項目) につき 1 つのイベントを発生させます。

また、それ以降のノード(おそらく12.3)では、この関数が変更されたとドキュメントに書かれているため、文字列を配列でラップする必要がなくなったことに注意してください。

https://nodejs.org/api/stream.html#stream_stream_readable_from_iterable_options