我收到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
答案 0 :(得分:1)
您安装的html
package与Express无关。因此,如果你告诉Express使用它,那就不足为奇了。
如果您要提供静态HTML文件,请参阅this question's answers和Express documentation。最简单的方法就是
app.use(express.static('views'));
答案 1 :(得分:1)
html包不是可与Express一起使用的模板引擎。相反,它是一个 HTML漂亮的打印机CLI实用程序。
请参阅Using template engines with Express以获取适用于Express的模板引擎列表。