2014-11-06 30 views
6

im przy użyciu nodejs i im próbuje służyć tylko pliki HTML (bez silników jade, ejs ...).Nodejs: Błąd: Nie można znaleźć modułu "html"

herezje mój punkt wejścia (index.js) Kod:

var express = require('express'); 
var bodyParser = require('body-parser'); 

var app = express(); 

app.set('port', (process.env.PORT || 5000)); 
app.use(express.static(__dirname + '/public')); 

app.use(bodyParser.urlencoded({ 
    extended: true 
})); 
app.use(bodyParser.json()); 

app.use(express.static(__dirname + '/public')); 

app.get('*', function(req, res){ 
    res.render('index.html'); 
}); 

app.listen(app.get('port'), function() { 
}); 

to robi dobrze, kiedy uderzył w link "localhost: 5000 /", ale gdy próbuję coś jak „localhost: 5000/cokolwiek”mam następujący komunikat: błędzie: nie można odnaleźć modułu«html»

im nowy w nodejs, ale chcę wszystkie trasy do renderowania pliku index.html. Jak mogę to zrobić ???

Dziękuję.

Odpowiedz

22

Musisz określić folder widoku i przeanalizować silnik w HTML.

var express = require('express'); 
var bodyParser = require('body-parser'); 

var app = express(); 

app.set('port', (process.env.PORT || 5000)); 
app.use(express.static(__dirname + '/public')); 
app.set('views', __dirname + '/public/views'); 
app.engine('html', require('ejs').renderFile); 
app.set('view engine', 'html'); 

app.use(bodyParser.urlencoded({ 
    extended: true 
})); 
app.use(bodyParser.json()); 



app.get('*', function(req, res){ 
    res.render('index.html'); 
}); 

app.listen(app.get('port'), function() { 
}); 
+1

Nie zapomnij, że musisz najpierw zainstalować "ejs", ok? uściski – vcrzy

+0

to działa dobrze po zainstalowaniu programu ejs oczywiście i umieszczeniu 'index.html' w folderze 'views', dzięki mate. – dafriskymonkey

+0

komenda instalowania programu ejs to "npm install ejs" – mujaffars

4

Jeden użyłby uczynić tylko w przypadku korzystania niektóre silniki renderujące, takie jak jade lub EJS, jeśli planujesz używać zwykłego HTML, należy umieścić go w folderze publicznym lub służyć jako pliku statycznego.

res.sendFile('index2.html', {root : __dirname + '/views'}); 
Powiązane problemy