2017-10-20 34 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等模板