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 に答える