問題タブ [node-streams]
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.
gulp - 変更を加える前にgulpストリーム全体を解析する方法は?
Gulp を使用して静的サイトを作成しようとしています。以前のバージョンで書いた概念を翻訳し、それを Gulp を使用して実装する方法という興味深い問題にぶつかりました。
他のファイルを動的にインクルードするファイルがある場合の概念の 1 つです。
次に、他のファイルにそのキーがあります。
... と:
望ましい最終結果は次のとおりです。
基本的に、ファイルをスキャンし、data
要素を一連の要素としてページに挿入します。含めるカテゴリやタグのすべてを事前に把握しているわけではないため (30 ~ 40 の Git リポジトリをマージしています)、カテゴリごとに 1 つのタスクを作成したくありません。
私が望んでいるのは次のようなものです:
問題は、ストリームがどのように機能するかのようです。各ファイルは 1 つのパイプから次のパイプへと渡されるため、2 つのメソッドを連鎖させることはできません。要素を挿入するinclude.files
には、すべての入力ファイル (サブディレクトリにもありません) を解析して、どのファイルが含まれているかを確認してから終了する必要があります。
「ストリームを分割」し、最初のものを解析してデータを取得し、2番目のものを最初のものの最後にチェーンし、2番目のものを使用してメソッドから結果を渡す必要があるようです。それを行う方法が完全にはわかりません。いくつかの指針や提案が欲しいです。私のグーグルフーは、私が再編成した良い提案やヒントさえも思いつきませんでした。ありがとうございました。
c - CからNode.jsにデータをストリーミングする方法はありますか
私はこれについて調査を行いましたが、私が見つけた可能な解決策はいくつかあります:
C からファイルに書き込み、Node.js ストリームでファイルを読み取る。ここで、いくつか疑問があります。Nodeストリームについてもっと知識を持ち、この方法で使用できるかどうかを確認する必要があります. ファイルの終わりに達した場合でも、ファイルのストリームを開いたままにし、新しいデータ (おそらく行として) がファイルに追加されたときに続行する必要があります。
Node.js C/C++ アドオンの使用。しかし、最初のアプローチの最初のオプションよりも複雑に思えます。
Node.js File System Class FSWatcher (File System Watcher)とfs.watchやfs.watchFileなどのそのメソッドを使用します。ただし、ファイルに書き込まれた新しいデータを提供する方法はなく、それぞれ独自の警告とパフォーマンスの問題があります ( fs.watchFile セクションの注を参照してください)。それらをfs.Statsと組み合わせて使用し、ファイル内の位置から読み取ることで、 やりたいことを達成する方法が得られるかもしれません。しかし、これはかなり複雑なようです。
プログラムで停止しない限り、C から Node.js に中断なくデータをストリーミングする方法はありますか?
feathersjs - Feathers でのストリーミング レスポンス
res
Express では、ストリーム オブジェクトであるため、ストリーミング レスポンスを簡単に実装できます。
ただし、Feathers カスタム サービス メソッド内で、何かを応答としてストリーミングするにはどうすればよいでしょうか?
javascript - Node.js を使用した大きなファイルの並べ替えと比較
各行に UUID を持つ 2 つのファイルがあります。各ファイルには数十万行あります (データベース ダンプから生成されます)。これらのファイルを並べ替えて、相違点を見つける必要があります (追加/削除)。これは、いくつかの *nix ツールを使用して簡単に実行でき、数秒しかかかりません。
ただし、この機能を、マルチプラットフォームでの使用を目的とした (Node 上に構築された) CLI に追加したいと考えています。したがって、サブプロセスを生成してこれらのツールに委任することはオプションではありません。
「愚か」で各ファイルをメモリにロードし、改行で分割し.sort()
、結果の配列を呼び出すと、驚くほどうまく機能します(かなり多くのメモリを使用しますが、高速です...)が、違いを見つけるのはかなり難しいことが証明されています.
答えはストリームの領域のどこかにあると確信していますが、ストリームを操作した経験がないため、どこから始めればよいかわかりません。
Node.js を使用してこのような大きなファイルをロード、ソート、および比較する効率的な手法は何ですか?
私は完全な解決策を探しているわけではありません (ただし、お気軽に!)、この段階ではポインタだけが本当に役に立ちます。
ありがとう!
node.js - MongoDB への Node.js ストリーム書き込み - パフォーマンスが心配
何千行ものログファイルを読み取り、各行を Mongo データベースに書き込む必要があります。ノードストリームを使用してファイルを読み込んでいます。「分割」npmパッケージを使用して、ファイルを「行」に分割しています。MongoDB の書き込みは、ネットワークの考慮事項により、ログファイルの読み取りよりもはるかに時間がかかります。
私のコアコードは次のようになります。
キューに入れられる書き込みの数によって MongoDB システムが打撃を受けることを心配する必要はありますか? おそらく、ノード パイプ バックプレッシャー メカニズムは、多くの db 書き込みがキューに入れられていることを認識していないのでしょうか? ログファイルから次の行を読み取る前に、各 MongoDB 挿入が完了するのを待つように、読み取り可能なストリームを「遅く」する方法はありますか? 私は不必要に心配していますか?
node.js - 書き込みの結果が利用可能になる前に「drain」イベントを登録する必要があります
私はこのコードスニペットを持っています:
書き込もうとしてもハンドラーを追加するという標準的な慣行が行われているのだろうか?
node.js - メモリ消費量が減少して一定にとどまるよりも増加するのはなぜですか
次の簡単なプログラムがあります。
また、次のメモリ消費量がログに記録されます。
29 38 48 58 67 77 86 96 105 115 125 134 144 153 163 173 182 192 192 192 211 220 230 2340 249 259 268 287 297 307 316 326 335 345 355 364 374 383 393 402 412 508 518 527 537 546 556 565 575 585 561
87 97 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44
ご覧のとおり、 まで成長して561 MB
いましたが、 まで落ち込み87 MB
、その後は を下回りまし100 MB
た。そこで何が起こるの?
node.js - Node.js はファイル ストリームを変換し、同じファイルに書き込むと空のファイルになります
ノード ファイル ストリームとカスタム変換関数を使用していくつかのファイルを変更しようとしています。これは変換関数です:
そして、次のコードでそれを使用しようとしました:
ただし、ファイルは空になります。
トランスフォーマーのコードが期待どおりに動作することを確信しています。なぜなら、パイプを試してみたところprocess.stdout
、出力がまさに希望どおりだったからです。
私の質問は、私が間違っていることと、それを修正するために何を試みることができるかということです。