【问题标题】:Sending javascript variable on res.render - express在 res.render 上发送 javascript 变量 - express
【发布时间】:2014-09-23 05:38:37
【问题描述】:

我正在尝试构建一个小型应用程序,以从包含 JSON 的 config.js 文件中调用,并将该数据写入基于 JSON 中的 name 键的页面。

app.get('/:verb', function(req, res) {

    if(!!req.param.verb) {
       config.data.forEach(function(o) {
           var verbName    = o.name,
               description = o.description;

       });

    };
res.render('verb', {title: verbName, subtitle: description});
});

我要做的是使用verbNamedescription javascript 变量作为res.render 结构中的Jade 变量。就目前而言,由于verbNamedescription 不是字符串,此代码将失败。

这样可以包含变量吗?

PS - 快递 1 周和 Jade 2 天,因此所有想法/解决方案将不胜感激。

【问题讨论】:

  • 我不确定我是否理解您的问题。 “此代码将失败”是什么意思。您收到错误消息吗?如果是这样的话,你能把它贴出来吗?将变量传递给您的 Jade 视图是完全可能的。它们将在 Jade 中的 locals 对象中可用。所以你应该可以通过locals["title"] & locals["subtitle"] 来访问它们。
  • 没有这样的错误消息 - 我从服务器收到 500 并且依赖此代码的页面部分无法显示。我将研究locals 对象。本质上,我正在尝试使用var verbName = o.nametitle 对象提供数据。我无法让 res.render 接受 title 的变量。如果使用当地人解决了这个问题,那就太好了。

标签: javascript json node.js express pug


【解决方案1】:

您在错误的范围内声明了变量。您还将在每个 forEach 循环执行中覆盖它们

app.get('/:verb', function(req, res) {

    var verbName,
        description;

        if(!!req.param.verb) {
           config.data.forEach(function(o) {
               verbName    = o.name,
               description = o.description;

           });

        };
    res.render('verb', {title: verbName, subtitle: description});
    });

【讨论】:

    猜你喜欢
    • 2019-07-02
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    相关资源
    最近更新 更多