問題タブ [node.js-stream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - チャンクの開始点と終了点を定義する NodeJS parseStream
Node のファイルシステムの解析に混乱しています。これが私のコードです:
これにより、何も起こりません。XML2JS/パーサーからの出力はまったくありません。私がしようとするconsole.log(chunk)
とchunks
、おそらくバイトサイズ以外に基づいて、意味のあるチャンクで出力されていないようです。1 つの「チャンク」の出力は次のとおりです。
<product>
このチャンクには、内部に XML からの非常に多くのエントリが含まれています。チャンクはエントリの途中で終了し<product>
、次のチャンクは中断したところから始まります。
主な質問は、で始まり、で終わるチャンクを出力するにはどうすればよいですか?createReadStream
<product
</product>
編集: 適切な出力を得るために、最初から最後までの XML は<product>
次のようになります。
node.js - node.js プロセス用の追加の stdio ストリーム
子プロセスを生成するときに追加の stdio (fd=4) を使用する node.js API ドキュメント:
そのstdioは、を介して親プロセスで利用できますChildProcess.stdio[fd]
。
子プロセスはこれらの余分な stdio にどのようにアクセスできますか? ファイル記述子 3 (fd=3) でパイプの代わりにストリームを使用しましょう。
node.js - 書き込み可能なストリームを実装する方法
Amazon Kinesis ストリームから s3 ログまたは bunyan ログにデータをパイプしたいと考えています。
このサンプルは、ファイル書き込みストリームまたは stdout で動作します。自分の書き込み可能なストリームを実装するにはどうすればよいですか?
これは、メソッド「on」がないと言って機能しません
独自のカスタム書き込み可能ストリームに実装する必要があるメソッドは何ですか?ドキュメントは、「オン」ではなく「書き込み」を実装する必要があることを示しているようです
node.js - node.js ストリームで buffer と buffer.toString() を使用するメモリに関する考慮事項
readstream.pipe(transformstream).pipe(writeStream) を実行しています。アプリケーションは readstream を使用してファイル システムから xml を読み取ります --> 変換ストリームを使用してさまざまなタグに基づいて何らかの操作を行います --> 別のファイル システムに書き込みます。
トランスフォーム ストリーム内の変換操作中。プッシュする前に文字列を操作する必要があるため、すべてのチャンクに対して buffer.toString() を実行しています。
xml のサイズは最大 3 MB で、最大 44 個のチャンクに分割されていることに気付きました。
与えられた問題に基づいて、v8 ヒープとシステムの両方でのメモリ消費に関する質問があります。
1) バッファが v8 メモリの外部に格納されていることを理解しています。_transform 関数で chunk.toString() を実行すると、v8 メモリ内に JavaScript 文字列オブジェクトが作成されますか? はいの場合、すべての参照を失った後にガベージコレクションされると想定しています。
2)バッファはシステムメモリの一部であるため、ガベージコレクションされていないと思いますが、そのメモリはいつ解放されますか?
3) すべてのチャンクを文字列に変換しているので、アプリケーションは変換ストリームの適切な使用例ですか?
EDITED:私は自分自身を明確に説明していないかもしれません. とにかく、jsonに変換する前に、xmlタグから名前空間を削除する方法を見つけようとしています。これが私が最終的に得たコードです。javascrtipt のメモ化を利用しました。より良い、またはよりメモリ効率の良い方法を見つけたら教えてください。actionhero.js フレームワークを使用しています