我是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
知道如何正确渲染吗?
答案 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关心这一点。