Je nettoie avec node.js et nous avons découvert deux manières de lire un fichier et de l'envoyer sur le réseau, une fois que j'ai établi qu'il existe et ont envoyé le bon type MIME avec writeHead:
// 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();
});
Suis-je raison de supposer que la fs.createReadStream pourrait fournir une meilleure expérience à l'utilisateur si le fichier en question a été quelque chose de grand, comme une vidéo? Il se sent comme il peut être moins bloc-ish, est-ce vrai? Existe-il d'autres avantages, les inconvénients, les mises en garde, ou de pièges j'ai besoin de savoir?