Dieser Artikel beschreibt drei Möglichkeiten zum Schreiben von Dateien in Node.js. Der spezifische Inhalt ist wie folgt
1. Dateien über den Pipe-Flow schreiben
Durch die Verwendung von Pipes zur Übertragung von Binärstreams können beschreibbare Streams nicht befürchtet werden, dass lesbare Streams zu schnell abstürzen. Geeignet für große und kleine Dateiübertragungen (empfohlen)
var readStream = fs.createReadStream(decodeURIComponent(root + filepath.pathname)); // 必须解码url readStream.pipe(res); // 管道传输 res.writeHead(200,{ 'Content-Type' : contType }); // 出错处理 readStream.on('error', function() { res.writeHead(404,'can not find this page',{ 'Content-Type' : 'text/html' }); readStream.pause(); res.end('404 can not find this page'); console.log('error in writing or reading '); });
2. Stream-Schreiben manuell verwalten
Manueller Verwaltungsablauf, geeignet für die Verarbeitung großer und kleiner Dateien
var readStream = fs.createReadStream(decodeURIComponent(root + filepath.pathname)); res.writeHead(200,{ 'Content-Type' : contType }); // 当有数据可读时,触发该函数,chunk为所读取到的块 readStream.on('data',function(chunk) { res.write(chunk); }); // 出错时的处理 readStream.on('error', function() { res.writeHead(404,'can not find this page',{ 'Content-Type' : 'text/html' }); readStream.pause(); res.end('404 can not find this page'); console.log('error in writing or reading '); }); // 数据读取完毕 readStream.on('end',function() { res.end(); });
3. Daten auf einmal lesen und schreiben
Den gesamten Inhalt der Datei auf einmal lesen, geeignet für kleine Dateien (nicht empfohlen)
fs.readFile(decodeURIComponent(root + filepath.pathname), function(err, data) { if(err) { res.writeHead(404,'can not find this page',{ 'Content-Type' : 'text/html' }); res.write('404 can not find this page'); }else { res.writeHead(200,{ 'Content-Type' : contType }); res.write(data); } res.end(); });
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.