Передача объектов клиенту в node + express + jade?

У меня есть довольно тяжелый запрос на сервере, который приводит к созданию новой страницы, и я хотел бы передать некоторые результаты запроса клиенту (как массив объектов 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>

но это не работает (это массив объектов).

Ответ 1

Вы не можете встроить такой объект JS, но вы можете JSON.stringify его перед:

<script type="text/javascript">
  var data = !{JSON.stringify(data)};
</script>