我正在尝试使用NodeJS创建一个带有express和pug模板的网站。
我使用快速文档集成了Pug,但我一直在渲染函数上获得TypeError: View is not a constructor
。我真的看起来,但唯一有这个问题的人用其他模板得到它,并没有做到这很简单。
所以最后我这样做了:
var express = require('express');
var server = express();
server.set('views', './views');
server.set('view engine', 'pug');
server.get('/', (req, res) => {
res.render('example', {title: "code", message: "message"});
});
require('./settings')(server); console.log('Settings initialized');
server.listen(server.settings.port);
console.log('Server listening on port', server.settings.port);
在views /模板中看起来像:
html
head
title = title
body
h1 = message
在package.json中,我将其导入为:"pug": "^2.0.0-rc.1"
感谢您的提示!祝你有愉快的一天。
- 编辑 - 所以我通过卸载哈巴狗做了一个小实验...我有相同的结果,所以我想我没有安装或参数化好哈巴狗。 - 编辑 - 做了一些其他测试,结果证明没有要求它运作良好。但我不明白为什么,我需要导入外部文件。
答案 0 :(得分:0)
这可能是由于各种原因而发生的,其中最常见的原因之一是您在index.js中使用pug的方式或实例所在的位置上有错字。
确保将其安装在本地(检查package.json)并在根目录下创建一个名为“ views”的文件夹,并在其中使用与rooter相同的文件,然后确保使用罪恶税:
server.set('view engine', 'pug');
server.set('views','./views');// default, but if you specify don't make mistake on this
对于您而言,我认为是导致此错误的顺序。
另一条有用的注释是,哈巴狗(sug)税是必需的,要求“标签”后跟无空格的“ =”,例如:
html
head
title= title
body
h1= message