ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsで大きなファイルを読み取る方法

Nodejsで大きなファイルを読み取る方法

亚连
亚连オリジナル
2018-06-21 17:04:302211ブラウズ

この記事は、オンラインビデオなどの大きなファイルを詳細に読み取るためのnodejsを主に紹介します。興味のある友人はそれを参照してください。

nodejsがビデオを読み取るときは、一度限りの読み取りとは異なります。このように、再生前にすべてのバッファリングが完了するのを待つ必要がなく、クライアントの再生がバッファリング中に再生されるように、その一部を読み取って一部を返す必要があります。

古いルール、説明するコードを投稿するだけです:

var fs = require('fs'); 

function readBigFileEntry(filename, response) { 
path.exists(filename, function(exists) { 
if (!filename || !exists) { 
response.writeHead(404); 
response.end(); 
return; 
} 

var readStream = fs.ReadStream(filename); 

var contentType = 'none'; 
var ext = path.extname(filename); 
switch (ext) { 
case ".flv": 
contentType = "video/flv"; 
break; 
} 

response.writeHead(200, { 
'Content-Type' : contentType, 
'Accept-Ranges' : 'bytes', 
'Server' : 'Microsoft-IIS/7.5', 
'X-Powered-By' : 'ASP.NET' 
}); 



readStream.on('close', function() { 
response.end(); 
console.log("Stream finished."); 
}); 
readStream.pipe(response); 
}); 
}

fs モジュールの ReadStream メソッドを通じてビデオ ストリームを取得し、終了イベントをバインドします: ストリームが最後まで読み取られたときに応答リクエストを終了し、最後に実行しますパイプ方式による小さなチャンク 小さなブロックの読み取り。 Content-Length 属性はセグメントで読み取る必要があるため、ここではヘッダ情報に追加できません。この属性が追加されると、ブラウザはリクエストが終了したと判断してリクエストを閉じます。

上記は私があなたのためにまとめたものです。

関連記事:

JavaScriptで円形広告バナーを実装する方法

WeChatミニプログラムで画像切り替え表示を実現するスワイパーコンポーネントの使い方

JavaScriptで円形広告バナーを実装する方法

Vue のデバッグ ツール vue-devtools について (詳細なチュートリアル)

Vue を使用して統合された Iframe ページを実装する方法

以上がNodejsで大きなファイルを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。