Express + jade:局部变量在视图中不可用

时间:2012-04-17 21:25:09

标签: node.js express pug

我遇到了一个非常基本的问题,但我似乎找不到答案。我正在使用node.jsexpress,我只是尝试将局部变量传递到视图中,如下所示:

 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

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

  • Express:3.0.0alpha1
  • node.JS:0.6.14
  • Jade:0.24.0

有人请帮忙,以便我可以继续学习node + express!

3 个答案:

答案 0 :(得分:28)

您应该在没有locals的情况下传递变量。这可能是Express 3.0.0中的新功能

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

答案 1 :(得分:4)

h1 = title尝试在本地评估它,你发送的标题和那个不同。要了解其中的差异,请参阅:

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

你应该使用的是:

h1 #{title}

答案 2 :(得分:1)

我几个小时前提出的类似问题(+处理布局)的

Here is a response。它显示了渲染时如何传递数据。 (Express 3.0.0 complient)