2017-02-15 5 views
-1

私はちょうどディレクトリからファイル名を読みたい:のみ15個のファイルとNode.jsでの低速FS:どのようにファイルを高速にリストできますか?

const fs = require('fs');  
fs.readdir("repo/_posts", (err, files) => {  
    files.forEach(file => { 
    res.write(file + "\n");  
    }); 
}) 

は、それは非常に遅いですが、それはファイル名を表示するには数秒かかります。私は何を間違えたのですか?

編集:コメントに@Darin Dimitrovの示唆したように、私はconsole.logでres.writeを置き換えようとしましたが、高速です。 res.writeはループやそれに類するもので悪い練習ですか?

感謝:)

+1

'fs.readdir'が遅く、HTTPパイプラインの他の部分ではないと確信していますか?これを、この呼び出しだけを行う別の 'test.js'ファイルに入れて、コンソールにファイル名を出力して、同じ動作をするかどうか確認できますか? –

+0

あなたは正しいです@DarinDimitrov。もし私がこれを行うなら、より速いです。コンソールにしか印刷しないと高速ですが、res.writeを使用すると速度が遅くなります。 – Loic

+0

'res.write()'出力がすぐに表示されるかどうか確認するために、そのURLをcURLで打つことを試みましたか?ほとんどの場合、ブラウザは出力をバッファリングしています(コンテンツのエンコードスニッフィングを含むさまざまな理由により)、すぐには表示されません。 – mscdex

答えて

1

ほとんどのブラウザは、(コンテンツのエンコーディング検出を含む)様々な理由のために、サーバから受信した出力をバッファリングし、そのうちのいくつかは他のものよりをバッファリングすることができます。 cURLなどのユーティリティを使用して同じURLにアクセスでき、さらに適切な出力が表示される場合は、ブラウザの「問題」を確認します。

関連する問題