Ik wil een zeer eenvoudige HTTP server draaien. Elke GET aanvraag naar example.com
moet index.html
geserveerd krijgen, maar dan als een gewone HTML pagina (dus dezelfde ervaring als wanneer je normale web pagina's leest).
Met de onderstaande code kan ik de inhoud van index.html
lezen. Hoe kan ik index.html
serveren als een gewone webpagina?
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);
Een suggestie hieronder is gecompliceerd en vereist dat ik een get
regel schrijf voor elk resource (CSS, JavaScript, afbeeldingen) bestand dat ik wil gebruiken.
Hoe kan ik een enkele HTML pagina serveren met wat afbeeldingen, CSS en JavaScript?
In plaats van met een switch statement te werken, denk ik dat het netter is om het inhoudstype uit een woordenboek op te zoeken:
var contentTypesByExtension = {
'html': "text/html",
'js': "text/javascript"
};
...
var contentType = contentTypesByExtension[fileExtension] || 'text/plain';
Node.js voorbeeld app Node Chat heeft de functionaliteit die je wilt.
In it's README.textfile
3. Stap staat waar je naar op zoek bent.
step1
- maak een server die reageert met hello world op poort 8002
step2
- maak een index.html en serveer die
stap3
- introduceer util.js
- verander de logica zodat elk statisch bestand geserveerd wordt
- toon 404 in geval geen bestand gevonden is
stap4
- voeg jquery-1.4.2.js toe
- client.js toevoegen
- verander index.html om gebruiker om nickname te vragen
Hier is de server.js
Hier is de util.js