42

我在服务器上有一个非常重量级的查询,导致新的页面呈现,我想将查询的一些结果传递给客户端(作为对象的 javascript 数组)。这基本上是这样我以后不必执行单独的 JSON 查询来获得相同的内容(这主要是静态的)。这些数据最终会有用,但最初不是,所以我没有直接将其放入文档中。

app.get('/expensiveCall', function(req, res) {
    // do expensive call
    var data = veryExpensiveFunction();
    res.render('expensiveCall.jade', {
        locals: {
                data: data,
                }
        });
    });
});

data 是一个对象数组,最初只使用了一些对象。我想传递全部数据或一些子集(取决于情况)。我的玉看起来像普通的玉,但我想包括类似的东西

<script type="text/javascript">
var data = #{data};
</script>

但这不起作用(它是一个对象数组)。

4

1 回答 1

89

你不能像这样内联一个 JS 对象,但你可以JSON.stringify这样做:

<script type="text/javascript">
  var data = !{JSON.stringify(data)};
</script>
于 2011-10-07T00:17:22.613 回答