gpt4 book ai didi

node.js - 哈巴狗 : TypeError: View is not a constructor

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:19 25 4
gpt4 key购买 nike

我正在尝试使用 NodeJS 以及 express 和 pug 作为模板来制作一个网站。我使用 Express 文档集成了 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"

感谢您的提示!祝你有美好的一天。

-- 编辑--所以我通过卸载 pug 做了一个小实验......我得到了相同的结果,所以我想我没有安装或参数化良好的 pug。 - 编辑 - 做了一些其他测试,结果证明不需要它就可以很好地工作。但我不明白为什么,我需要导入外部文件。

最佳答案

发生这种情况的原因有多种,最常见的原因之一是您在 index.js 中使用 pug 的方式或实例化对象的位置存在拼写错误。

确保在本地安装了它(检查您的 package.json)并创建了一个名为“views”的根文件夹,并在其中使用了您在 rooter 中使用的相同文件,然后确保使用 sintax:

server.set('view engine', 'pug');
server.set('views','./views');// default, but if you specify don't make mistake on this

就您的情况而言,我认为是订单导致了此错误。

另一个有用的注释是哈巴狗语法要求“标签”后面没有空格的“=”,例如:

html 
head
title= title
body
h1= message

关于node.js - 哈巴狗 : TypeError: View is not a constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com