Bruk av node.js som en enkel webserver

Jeg ønsker å kjøre en veldig enkel HTTP-server. Hver GET-forespørsel til eksempel.com skal få index.html servert, men som en vanlig HTML-side (dvs. samme opplevelse som når du leser vanlige nettsider).

Ved hjelp av koden nedenfor kan jeg lese innholdet i index.html. Hvordan serverer jeg index.html som en vanlig nettside?

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);

Ett av forslagene nedenfor er komplisert og krever at jeg skriver en "get"-linje for hver ressursfil (CSS, JavaScript, bilder) jeg vil bruke.

Hvordan kan jeg vise en enkelt HTML-side med noen bilder, CSS og JavaScript?

Jeg tror den delen du mangler akkurat nå er at du sender:

Content-Type: text/plain

Hvis du vil at en nettleser skal gjengi HTML, bør du endre dette til:

Content-Type: text/html
Kommentarer (3)

I stedet for å forholde seg til en switch-setning, tror jeg det er ryddigere å slå opp innholdstypen fra en ordbok:

var contentTypesByExtension = {
    'html': "text/html",
    'js':   "text/javascript"
};

...

    var contentType = contentTypesByExtension[fileExtension] || 'text/plain';
Kommentarer (2)

Rediger:

Node.js-eksempelappen Node Chat har funksjonaliteten du ønsker.
I den README.textfile1. 3. Step er det du leter etter.

step1

  • opprett en server som svarer med hello world på port 8002

trinn2

&gt

  • opprett en index.html og server den

trinn3

&gt

  • introdusere util.js
  • endre logikken slik at en hvilken som helst statisk fil blir servert
  • vis 404 i tilfelle ingen fil blir funnet

trinn 4

  • legg til jquery-1.4.2.js
  • legg til client.js
  • endre index.html for å be brukeren om kallenavn

Her er den server.js

Her er den util.js

Kommentarer (5)