Verwendung von node.js als einfacher Webserver

Ich möchte einen sehr einfachen HTTP-Server betreiben. Jede GET-Anfrage an example.com soll index.html erhalten, aber als normale HTML-Seite (d.h. die gleiche Erfahrung wie beim Lesen normaler Webseiten).

Mit dem unten stehenden Code kann ich den Inhalt von "index.html" lesen. Wie kann ich "index.html" als normale Webseite anzeigen lassen?

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

Der folgende Vorschlag ist kompliziert und erfordert, dass ich für jede Ressourcendatei (CSS, JavaScript, Bilder), die ich verwenden möchte, eine "get"-Zeile schreibe.

Wie kann ich eine einzelne HTML-Seite mit einigen Bildern, CSS und JavaScript bereitstellen?

Ich denke, der Teil, den Sie im Moment vermissen, ist, dass Sie senden:

Content-Type: text/plain

Wenn Sie möchten, dass ein Webbrowser das HTML gerendert wird, sollten Sie dies ändern in:

Content-Type: text/html
Kommentare (3)

Anstatt mit einer Switch-Anweisung zu arbeiten, halte ich es für sinnvoller, den Inhaltstyp in einem Wörterbuch nachzuschlagen:

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

...

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

Bearbeiten:

Die Node.js-Beispielanwendung Node Chat hat die gewünschte Funktionalität.
In der README.textdatei 3. Schritt steht, wonach Sie suchen.

Schritt1

  • Erstellen eines Servers, der mit "Hallo Welt" auf Port 8002 antwortet

Schritt2

  • Erstellen Sie eine index.html und stellen Sie sie bereit.

Schritt3

  • util.js einführen
  • ändere die Logik so, dass jede statische Datei ausgeliefert wird
  • 404 anzeigen, wenn keine Datei gefunden wird

Schritt4

  • jquery-1.4.2.js hinzufügen
  • client.js hinzufügen
  • index.html so ändern, dass der Benutzer nach seinem Nickname gefragt wird

Hier ist die server.js

Hier ist die util.js

Kommentare (5)