2014-11-06 130 views
6

即時通訊使用nodejs和im試圖只服務於html文件(沒有玉,ejs ...引擎)。Nodejs:錯誤:找不到模塊'html'

我的繼承人入口點(index.js)代碼:

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() { 
}); 

這是做的很好的時候我打的網址「本地主機:5000 /」,但是當我嘗試類似「本地主機:5000 /無論」我得到了以下信息: 錯誤:無法找到模塊‘HTML’

即時通訊新來的NodeJS,但我想所有路線呈現index.html文件。我怎樣才能做到這一點 ???

謝謝。

回答

22

您需要指定您的視圖文件夾並將引擎解析爲HTML。使用一些渲染引擎如翡翠或EJS的時候,如果你打算使用純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

不要忘了你需要安裝「ejs」之前,好嗎?擁抱 – vcrzy 2014-11-06 13:09:28

+0

當然安裝ejs後它的工作很好,並把'index.html'放在'views'文件夾裏,謝謝mate。 – dafriskymonkey 2014-11-06 13:25:18

+0

安裝ejs的命令是'npm install ejs' – mujaffars 2015-06-11 08:42:47

4

,應當使用唯一渲染。

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