Express js render:TypeError:this.engine不是函数

时间:2017-04-28 09:00:55

标签: node.js express

我收到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>

我收到错误

  

enter image description here

我的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

2 个答案:

答案 0 :(得分:1)

您安装的html package与Express无关。因此,如果你告诉Express使用它,那就不足为奇了。

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

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

答案 1 :(得分:1)

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

请参阅Using template engines with Express以获取适用于Express的模板引擎列表。