错误:模块“html”未提供视图引擎(Express)

3

我正在尝试设置一个简单的路由应用,但是在渲染页面时一直遇到错误。

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 ...将"I'm here"发送到DOM。
但是每当我尝试使用res.render渲染chef.html页面时,我会收到上面的错误。这很奇怪,因为我已经在app.js中设置了视图引擎。
有关如何渲染HTML文件的建议?
1个回答

5

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

发送文件时,我们使用 res.sendFile(fullPath),如果您正在使用除 HTML 以外的其他语言,则应使用 res.render()。

res.render() 适用于诸如 ejs、pug 等模板。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接