Как соединить front-end и back-end?
другой путь
Шаблонизаторы? Почти все они могут выполняться на сервере и прекомпилироваться или вообще собираться в html. Отдельно рекомендую посмотреть в сторону jade.Каким образом нам получить данные?
Видно что вы гуглили, написали много букв и до таких вещей как "клиент-серверная архитектура", REST, и тд. вы не добрались...На мой взгляд сервер должен возвращать мою сверстанную страницу
Это одна точка зрения. Если брать каноническую клиент-серверную архитектуру, фронтэнд и бэкэнд (по сути клиент и сервер) - это два независимых приложения (ну как независимые... им плевать на реализацию друг друга). Далее мы можем просто частично переносить какие-то слои туда сюда. Причем это обычно связано с какими-либо оптимизациями, будь то производительность или уменьшение другой головной боли (например гуглы научились нормально индексировать single page application-ы относительно недавно, и прекомпиляцию на сервере организовывать приходилось отдельно).На мой взгляд бэк-энд вообще не должен заниматься компановкой HTML
Это другая точка зрения, и я ее в принципе поддерживаю и придерживаюсь последние пару лет. Опять же - гуглите в сторону REST Api. Инфы валом, есть масса лекций, докладов и презенташек...
При первом запросе к серверу — он возвращает вам SPA приложение целиком. Потом это приложение уже общается с сервером как с API, работая только с данными.layout pages в Jade