2012-04-17 37 views
15

我遇到了一个非常基本的问题,但我似乎无法找到答案。我与node.js工作,express,我只是想给一个局部变量传递到像这样的观点:Express + jade:局部变量在视图中不可用

app.get('/', function(req, res){ 
    res.render("index", {locals: { 
    title: "Blog", 
    } 
    }); 
}); 

我的索引视图也同样简单:

h1= title 

但由于某些原因,我继续得到这个错误,好像本地变量永远不会通过:

500 ReferenceError: /home/spartan/Node_Projects/test/views/index.jade:1 > 1| h1= title 2| title is not defined 
> 1| h1= title 
    2| title is not defined 

我不知道我在做什么错了!下面是我使用的版本:

  • 快递:3.0.0alpha1
  • 的Node.js:0.6.14
  • 玉:0.24.0

有人请帮助,所以我其实可以转到学习节点+快递!

回答

28

你应该通过变量没有locals。这可能是新的快递3.0.0

res.render("index", {title: "Blog"}); 
+1

非常感谢,这就是它!我只是按照一个老的教程,并不知道什么是错的。 – aeyang 2012-04-18 17:00:01

4

h1 =标题试图在本地评估它,你发送的标题和一个不同的标题。理解上的差异见:

- var title = 'my title' // - allows writing code 
h1 = title 

你应该使用的一个是:

h1 #{title} 
+0

谢谢你告诉我,我明白现在的差异。我很确定那是它,但不幸的是,当我将视图改为“h1#{title}”时,它给了我完全相同的错误信息......任何想法? – aeyang 2012-04-18 03:34:38

1

Here is a response,我提出几个小时前的smiliar问题(+处理布局)。它演示了如何在渲染时传递数据。 (Express 3.0.0 complient)

+0

谢谢你,你的回应有我正在寻找的答案。 – aeyang 2012-04-18 17:09:38

相关问题