К сожалению, это единственный способ , если вам нужно для отправки html в качестве ответа с использованием шаблонов руля за один раз.
Рендеринг на стороне сервера создает полную страницу, и все ваши данные должны быть"разобран" и готов.
Вы можете обойти это с помощью AJAX-запроса ( обратите внимание, что это добавляет второй запрос ) и вернуть оттуда JSON-ответ, который вы могли быпросто обработайте его (рекомендуется):
//somewhere in your page.hbs
<script>
const loadObject = () => fetch('/express/path')
.then(response => response.json)
.then(obj => {
//do whatever with the obj
})
window.onload = loadObject;
</script>
И в вашем экспрессе.
app.get('/express/path', (req, res) => {
res.json({
data: [1, 2, 3]
})
})
Вы также можете использовать <script src=/express/to/javascript >
для запроса определенного файла .js.И оттуда используйте любую глобальную переменную области видимости.Хорошее обсуждение можно найти по ссылке ниже:
HTML / Javascript: как получить доступ к данным JSON, загруженным в тег сценария с установленным src