错误:模块“html”不提供视图引擎(Express)
问题描述:
我正在尝试设置一个简单的路由应用程序,但在渲染页面时我一直运行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文件的建议?
答
使用res.sendFile('/fileName.html');
代替res.render()
发送文件,我们使用res.sendFile(fullPath)
,如果你是不是HTML语言使用等,那么你应该使用res.render()。
res.render()
适用于像ejs, pug
等模板