Express js渲染:TypeError:this.engine不是函数[重复]
Posted
技术标签:
【中文标题】Express js渲染:TypeError:this.engine不是函数[重复]【英文标题】:Express js render : TypeError: this.engine is not a function [duplicate] 【发布时间】: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。
【参考方案1】:
html 包不是可以与 Express 一起使用的模板引擎。相反,它是一个 HTML 漂亮的打印机 CLI 实用程序。
请参阅Using template engines with Express 了解可与 Express 配合使用的模板引擎列表。
【讨论】:
【参考方案2】:您安装的html
package 与 Express 无关。所以如果你告诉 Express 使用它,它就会失败也就不足为奇了。
如果您希望提供静态 HTML 文件,请参阅 this question's answers 和 Express documentation。最简单的方法就是
app.use(express.static('views'));
【讨论】:
感谢您的编辑和回复。以上是关于Express js渲染:TypeError:this.engine不是函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Express JS TypeError: Cannot read properties of undefined (reading '0') SQL query error
node_modules/express/lib/router/index.js:458 throw new TypeError('Router.use() requires a middleware
渲染中的 Vue.js 错误:“TypeError:无法读取未定义的属性‘长度’”