2017-10-20 76 views
0

我正在嘗試設置一個簡單的路由應用程序,但在渲染頁面時我一直運行int錯誤。錯誤:模塊「html」不提供視圖引擎(Express)

Error: Module "html" does not provide a view engine. 

我指定的視圖引擎在我的app.js文件,但我仍然得到錯誤

// app.js 

var express = require('express'); 
var app = express(); 
var router = express.Router(); 

// Need to import the route file 
var chef = require('./chef'); 
app.use('/chef', chef); 

// Set directory to contain the templates ('views') 
app.set('views', __dirname + '/views'); 

// Set view engine to use 
app.set('view engine', 'html'); 

app.use(function(err, req, res, next) { 
    console.error(err.stack); 
    res.status(500).send('Something broke!'); 
}); 


// chef.js 
var express = require('express'); 
var routes = express.Router(); 

routes.get('/', (req, res) => { 
    //res.send("I'm here!") 
    res.render('chef'); 
}); 

module.exports = routes; 

// views/chef.html 
Some HTML file here here .. 

在chef.js文件時,我只是想奇怪的是測試路由是否正常工作我取消註釋res.send ...將「我在這裏」發送到DOM。

但是,每當我嘗試res.render呈現chef.html頁面時,我會得到上述錯誤。我覺得奇怪,因爲我已經在app.js中設置了視圖引擎。

關於如何呈現我的HTML文件的建議?

回答

1

使用res.sendFile('/fileName.html');代替res.render()

發送文件,我們使用res.sendFile(fullPath),如果你是不是HTML語言使用等,那麼你應該使用res.render()。

res.render()適用於像ejs, pug等模板

相關問題