pug:TypeError:View不是构造函数

时间:2017-05-26 09:26:43

标签: node.js express pug

我正在尝试使用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"

感谢您的提示!祝你有愉快的一天。

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

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