【问题标题】:Express js render : TypeError: this.engine is not a function [duplicate]Express js渲染:TypeError:this.engine不是函数[重复]
【发布时间】:2017-09-26 08:02:47
【问题描述】:

我收到 TypeError:this.engine 不是函数。我不知道为什么会收到此错误。谁能帮我解决这个问题。

我的服务器文件:

var express = require('express');

var path = require('path');

var app = express();

//configure app
app.set('view engine', 'html');
app.set('views', path.join(__dirname, 'views'));

app.get('/', function (req, res) {
    res.render('index');
});


app.listen(3000, function() {
    console.log('Ready on port 1337');
});

还有我的 HTML 文件:

<!DOCTYPE html>
<html>

<head>

</head>

<body>
    <div>Hello Express</div>
</body>

</html>

我得到了错误

我的 package.json:

{
    "name": "app",
    "version": "1.0.0",
    "main": "index.html",
    "directories": {
        "test": "test"
    },
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "mehadi",
    "license": "UNLICENSED",
    "dependencies": {
        "express": "4.13.0",
        "html": "^1.0.0"
    },
    "repository": {
        "type": "git",
        "url": "(github.com/mehadi07/Random.git)"
    },
    "devDependencies": {},
    "description": ""
}

我通过

安装了html 引擎 npm install --save html

【问题讨论】:

  • 你的package.json 是什么?你在哪里注册这个'html' 视图引擎,你在注册什么引擎?
  • 您尝试使用什么模板引擎?我不认识html-template 引擎。您是否安装了引擎(使用npm)?请RTFM:expressjs.com/en/guide/using-template-engines.html
  • { "name": "app", "version": "1.0.0", "main": "index.html", "directories": { "test": "test" } , "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "mehadi", "license": "UNLICENSED", "dependencies": { "express ": "4.13.0", "html": "^1.0.0" }, "repository": { "type": "git", "url": "(github.com/mehadi07/Random.git)" }, "devDependencies": {}, "描述": "" }
  • 我使用了 npm install --save html
  • @MdMehadiHasanMozumder:要改进问题、添加详细信息等,请使用“编辑”链接,而不是 cmets。

标签: node.js express


【解决方案1】:

html 包不是可以与 Express 一起使用的模板引擎。相反,它是一个 HTML 漂亮的打印机 CLI 实用程序

请参阅Using template engines with Express 了解可与 Express 配合使用的模板引擎列表。

【讨论】:

    【解决方案2】:

    您安装的html package 与 Express 无关。所以如果你告诉 Express 使用它,它就会失败也就不足为奇了。

    如果您希望提供静态 HTML 文件,请参阅 this question's answersExpress documentation。最简单的方法就是

    app.use(express.static('views'));
    

    【讨论】:

    • 感谢您的编辑和回复。
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2019-07-18
    • 1970-01-01
    相关资源
    最近更新 更多