Je veux faire tourner un serveur HTTP très simple. Chaque requête GET vers exemple.com
devrait recevoir index.html
mais comme une page HTML normale (c'est-à-dire, la même expérience que lorsque vous lisez des pages web normales).
En utilisant le code ci-dessous, je peux lire le contenu de index.html
. Comment puis-je servir index.html
comme une page web normale ?
var http = require('http');
var fs = require('fs');
var index = fs.readFileSync('index.html');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(index);
}).listen(9615);
Une suggestion ci-dessous est compliquée et me demande d'écrire une ligne get
pour chaque fichier de ressources (CSS, JavaScript, images) que je veux utiliser.
Comment puis-je servir une seule page HTML avec quelques images, CSS et JavaScript ?
Plutôt que d'utiliser une instruction de commutation, je pense qu'il est plus judicieux de rechercher le type de contenu dans un dictionnaire :
var contentTypesByExtension = {
'html': "text/html",
'js': "text/javascript"
};
...
var contentType = contentTypesByExtension[fileExtension] || 'text/plain';
Node.js exemple d'application Node Chat a la fonctionnalité que vous voulez.
Dans son [README.textfile][1]
3. L'étape est ce que vous recherchez.
step1
- créer un serveur qui répond avec hello world sur le port 8002
étape 2
- créer un index.html et le servir
étape 3
- introduire util.js
- modifier la logique pour que tout fichier statique soit servi
- afficher 404 si aucun fichier n'est trouvé
étape 4
- ajouter jquery-1.4.2.js
- ajouter client.js
- modifier index.html pour demander à l'utilisateur son surnom
Voici le fichier [server.js][2].
Voici le fichier [util.js][3].
[1] : https://github.com/neerajdotname/node-chat-in-steps/blob/master/README.textile [2] : https://github.com/neerajdotname/node-chat-in-steps/blob/master/server.js [3] : https://github.com/neerajdotname/node-chat-in-steps/blob/master/util.js