玉多个模板文件

时间:2013-03-05 23:38:39

标签: node.js express pug

我是Node的新手,正在玩Express和Jade,我正在关注的教程已经过时了,我似乎无法弄清楚如何做到这一点。

在我的app.js文件中,我宣布了以下路线:

app.get('/helloworld', function(req,res) {
    res.render('tasks/helloworld.jade', { title: 'Hello World!' });
});

因此,对于我的观点,我有以下内容

layout.jade

doctype 5
html
 head
  title= title
  link(rel='stylesheet', href='http://twitter.github.com/bootstrap/assets/css/bootstrap.css')
 body
  section.container!= body

尝试使用bootstrap css

然后 tasks / helloworld.jade

extends ../layout

body
 h1 Hello World

然而,这似乎并没有产生我认为应该的结果。如果我删除extends ../layout模板渲染但没有任何标题。如果我留下它,我会收到body is not defined

的错误消息

知道如何正确渲染吗?

1 个答案:

答案 0 :(得分:4)

在jade中,您使用块来扩展模板。试试这个:

layout.jade:

doctype 5
html
 head
  title= title
  link(rel='stylesheet', href='http://twitter.github.com/bootstrap/assets/css/bootstrap.css')
 body
   section.container
      block content

helloworld.jade:

extends ../layout

block content
 h1 Hello World

这将有效地替换您所提供的新内容的布局block content中的所有内容,在本例中为h1 Hello World

编辑:我在布局中添加了一个section.container因为后来我意识到你想要将所有东西都包裹在体内。如果那不是您尝试做的事情,您可以删除该行,但如果您这样做,请确保修复缩进,因为jade关心这一点。