Dieser Artikel stellt hauptsächlich NodeJS zum Lesen großer Dateien vor, z. B. Online-Videos, die einen gewissen Referenzwert haben.
NodeJS kann nicht auf einmal gelesen werden Es liest Bilder, muss jedoch einen Teil davon lesen und einen Teil davon zurückgeben, damit der Client während der Pufferung abspielen kann, ohne vor der Wiedergabe warten zu müssen, bis die gesamte Pufferung abgeschlossen ist.
Alte Regeln, posten Sie einfach den Code zur Erklärung:
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); }); }
Rufen Sie den Videostream über die ReadStream-Methode des fs-Moduls ab und binden Sie dann das Schließereignis: Beenden Sie die Antwortanforderung, wenn der Stream Bis zum Ende lesen und schließlich kleine Blöcke über die Pipe-Methode lesen. Das Attribut „Content-Length“ kann hier nicht zu den Kopfinformationen hinzugefügt werden, da es in Segmenten gelesen werden muss. Wenn dieses Attribut hinzugefügt wird, geht der Browser davon aus, dass die Anfrage beendet ist, und schließt die Anfrage.
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
So implementieren Sie kreisförmige Werbebanner in Javascript
So implementieren Sie kreisförmige Werbebanner in Javascript
Über das Debugging-Tool vue-devtools (ausführliches Tutorial) in Vue
So verwenden Sie Vue, um eine integrierte Iframe-Seite zu implementieren
Das obige ist der detaillierte Inhalt vonSo lesen Sie große Dateien in NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!