2016-03-22 8 views
2

tatsächlich versuche ich, eine HTML-Datei im Browser mit Knoten js und Express zu dienen. Leider kann ich nicht das korrekte Aussehen der HTML-Datei bekommen.Serving HTML-Dateien in Knoten js mit Express

hier ist der Code:

var http = require('http'); 
var fs = require('fs'); 
// Chargement du fichier index.html affiché au client 

var server = http.createServer(function(req, res) { 
    fs.readFile('./table.html', 'utf-8', function(error, content) { 

     res.writeHead(200, {"Content-Type": "text/html"}); 
     res.end(content); 
    }); 
}); 
+0

'res.end (Inhalt);' 'sollte res.send (Inhalt) sein;' isn‘ t es? Nun, ich sehe hier keinen expressjs Code. – Jai

+0

Sie haben den Server nicht mit 'server.listen (PORT);' ausgeführt. – jcubic

+0

Wie dies ist repost von dieser Frage http://stackoverflow.com/questions/20345936/nodejs-send-html-file-to-client –

Antwort

1

Mit Express u so etwas wie

//init the app to extend express 
var express=require("express"); 
var app=express(); 
//inside the http callback 
var server = http.createServer(function(req, res) { 
    app.use(express.static("./file")); 
}) 
server.listen(8000); 
+0

nein, es funktioniert nicht –

+0

wo ist Ihre Datei leben? ... Sie müssen Ihre statischen Dateien in einem Verzeichnis haben und dienen sie mit Express statische – Vijaykrish93

+0

meine Datei ist in den/Ansichten. Ich habe den Pfad der Datei zu "/views/table.html" geändert und es funktioniert nicht –

2

Um eine einzelne Datei für eine bestimmte Route zu senden verwenden, um die res.sendFile() Funktion tun können.

var express = require('express'); 
var app = express(); 

var path = require('path'); 

app.get('/', function(req, res) { 
    res.sendFile(path.resolve('path/to/my/file.html')); 
}); 

app.listen(3000); 

Falls Sie alle Dateien in einem Verzeichnis dienen verwenden, um die express.static() Middleware

var express = require('express'); 
var app = express(); 

app.use(express.static('path/to/my/directory')); 

app.listen(3000);