【问题标题】:Express+jade: local variable not available in viewExpress+jade:局部变量在视图中不可用
【发布时间】:2012-04-29 06:35:48
【问题描述】:

我遇到了一个非常基本的问题,但我似乎找不到答案。我正在使用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

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

  • 快递:3.0.0alpha1
  • node.JS: 0.6.14
  • 翡翠:0.24.0

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

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:

    您应该传递不带locals 的变量。这可能是 express 3.0.0 中的新功能

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

    【讨论】:

    • 非常感谢,就是这样!我只是在学习一个旧教程,不知道出了什么问题..
    【解决方案2】:

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

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

    你应该使用的是:

    h1 #{title}
    

    【讨论】:

    • 谢谢你告诉我,我现在明白这个区别了。我很确定就是这样,但不幸的是,当我将视图更改为 h1 #{title} 时,它给了我完全相同的错误消息......有什么想法吗?
    【解决方案3】:

    Here is a response 几个小时前我提出了一个类似的问题(+ 处理布局)。它显示了如何在渲染时传递数据。 (Express 3.0.0 兼容)

    【讨论】:

    • 谢谢,您的回复也有我想要的答案。
    猜你喜欢
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2011-11-01
    • 2013-06-16
    相关资源
    最近更新 更多