私はnode.jsをいじっていて、ファイルが存在することを確認し、writeHeadで適切なMIMEタイプを送信したら、ファイルを読み取ってネットワークに送信する2つの方法を発見しました。
// read the entire file into memory and then spit it out
fs.readFile(filename, function(err, data){
if (err) throw err;
response.write(data, 'utf8');
response.end();
});
// read and pass the file as a stream of chunks
fs.createReadStream(filename, {
'flags': 'r',
'encoding': 'binary',
'mode': 0666,
'bufferSize': 4 * 1024
}).addListener( "data", function(chunk) {
response.write(chunk, 'binary');
}).addListener( "close",function() {
response.end();
});
問題のファイルがビデオのように大きなものである場合、 fs.createReadStream がより良いユーザーエクスペリエンスを提供する可能性があると仮定するのは正しいですか? ブロックっぽさが減ったような気がします。これは本当ですか?私が知る必要がある他の長所、短所、注意事項、または落とし穴はありますか?