Je suis en train de créer un fichier statique serveur nodejs plus comme un exercice pour comprendre nœud que comme un serveur idéal. Je suis bien conscient de projets comme le Connecter et le nœud-statique et ont l'intention d'utiliser ces bibliothèques pour plus prêt à la production de code, mais j'aime aussi comprendre les bases de ce que je suis en train de travailler avec. Avec cela à l'esprit, j'ai codé un petit server.js:
var http = require('http'),
url = require('url'),
path = require('path'),
fs = require('fs');
var mimeTypes = {
"html": "text/html",
"jpeg": "image/jpeg",
"jpg": "image/jpeg",
"png": "image/png",
"js": "text/javascript",
"css": "text/css"};
http.createServer(function(req, res) {
var uri = url.parse(req.url).pathname;
var filename = path.join(process.cwd(), uri);
path.exists(filename, function(exists) {
if(!exists) {
console.log("not exists: " + filename);
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('404 Not Found\n');
res.end();
}
var mimeType = mimeTypes[path.extname(filename).split(".")[1]];
res.writeHead(200, mimeType);
var fileStream = fs.createReadStream(filename);
fileStream.pipe(res);
}); //end path.exists
}).listen(1337);
Ma question est double
Est-ce la "bonne" façon d'aller sur la création et la diffusion en continu de base en html etc nœud ou est-il mieux/plus élégant/méthode plus solide ?
Est le .pipe() dans le nœud fondamentalement juste de faire ce qui suit?
.
var fileStream = fs.createReadStream(filename);
fileStream.on('data', function (data) {
res.write(data);
});
fileStream.on('end', function() {
res.end();
});
Merci à tous!