0

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

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

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

所以对于我的观点,我有以下几点

布局.jade

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

尝试使用引导 css

然后是任务/helloworld.jade

extends ../layout

body
 h1 Hello World

但是,这似乎并没有产生我认为应该的结果。如果我删除extends ../layout模板渲染但没有任何标题。如果我把它留在里面,我会收到一条错误消息body is not defined

知道如何让它正确渲染吗?

4

1 回答 1

4

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

布局.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在布局中添加了一个,因为后来我意识到我认为您正在尝试将所有内容都包含在正文中。如果这不是您想要做的,您可以删除该行,但如果您这样做,请确保您修复缩进,因为玉关心这一点。

于 2013-03-05T23:46:58.347 回答