サーバーにかなり重いクエリがあり、新しいページがレンダリングされます。クエリの結果の一部を(オブジェクトのjavascript配列として)クライアントに渡したいと思います。これは基本的には同じなので、後で同じコンテンツを取得するために別のJSONクエリを実行する必要はありません(ほとんど静的です)。データは最終的には有用になりますが、最初はそうではないので、ドキュメントに直接入れませんでした。
app.get('/expensiveCall', function(req, res) {
// do expensive call
var data = veryExpensiveFunction();
res.render('expensiveCall.jade', {
locals: {
data: data,
}
});
});
});
データはオブジェクトの配列であり、一部のみが最初に使用されます。データ全体または一部のサブセット(状況に応じて)を渡します。私のjaは通常のjaのように見えますが、次のようなものを含めたいと思います
<script type="text/javascript">
var data = #{data};
</script>
しかし、これは機能しません(オブジェクトの配列です)。
そのようなJSオブジェクトをインライン化することはできませんが、JSON.stringify
前:
<script type="text/javascript">
var data = !{JSON.stringify(data)};
</script>