【问题标题】:Error: Module "html" does not provide a view engine (Express)错误:模块“html”不提供视图引擎 (Express)
【发布时间】:2018-04-01 14:32:30
【问题描述】:

我正在尝试设置一个简单的路由应用程序,但在呈现页面时我一直运行错误。

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 文件的建议?

【问题讨论】:

    标签: javascript node.js express routing


    【解决方案1】:

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

    对于发送文件,我们使用了res.sendFile(fullPath),如果您使用的不是 HTML 语言,那么您应该使用 res.render()。

    res.render() 用于 ejs, pug 等模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 2015-09-29
      • 2014-07-24
      相关资源
      最近更新 更多