【问题标题】:pug : TypeError: View is not a constructor哈巴狗:TypeError:视图不是构造函数
【发布时间】:2017-10-27 03:22:55
【问题描述】:

我正在尝试使用带有 express 和 pug 模板的 NodeJS 创建一个网站。 我使用 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);

在视图/模板中看起来像:

html
  head
    title = title
  body
    h1 = message

在 package.json 中,我将其导入为:"pug": "^2.0.0-rc.1"

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

-- 编辑-- 所以我通过卸载哈巴狗做了一个小实验......我有相同的结果,所以我想我没有安装或参数化好哈巴狗。 - 编辑 - 做了一些其他的测试,结果证明没有要求它运行良好。但我不明白为什么,我需要导入外部文件。

【问题讨论】:

  • 对于初学者,您应该删除title 和等号(标题相同)之间的空格 - 所以title=,而不是title =。这很可能无法解决您面临的问题,但是由于中间有空格,代码无法按照您期望的方式工作(它将= title 作为页面标题,而不是title 变量的实际值)。
  • 谢谢@gandreadis,我更正了。
  • 此错误是由您未在此处粘贴的代码/配置引起的,因为它将由名为 View 或 view 的变量/设置引发。您应该使用express --view=pug 卸载并重新安装,并考虑删除或编辑此问题。
  • 您是否尝试将require('./settings')(server); 移到顶部?还可以为 require 使用另一种语法,例如 const settings = require('./settings');?

标签: node.js express pug


【解决方案1】:

这可能由于各种原因而发生,其中最常见的原因之一是您在 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                                  

在您的情况下,我认为是导致此错误的顺序。

另一个有用的注意事项是 pug sintax 要求“标签”后跟不带空格的“=”,例如:

html 
   head 
      title= title
   body
      h1= message  

【讨论】:

    【解决方案2】:

    由于views 中的拼写错误,我遇到了同样的错误

    server.set('view', './views');
    server.set('view engine', 'pug');
    

    我通过在视图中添加s 来修复它

    server.set('views', './views');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      相关资源
      最近更新 更多