Ответ 1
Со средним стеком (mongo, express, angular) у вас будет маршрутизация с обоих концов.
Express будет обслуживать ваши статические index.html и css/js/images и ваш api, а angular будет взаимодействовать с api для получения данных из mongo.
Маршрутизация с помощью экспресс в первую очередь будет выполняться для API, а маршрутизация в angular будет выполнена для обработки внешнего интерфейса вашего приложения. Express не будет возвращать какой-либо html, отличный от index.html, и любые частичные части шаблонов, которые вы написали для angular, однако даже это можно устранить, скомпилировав все шаблоны непосредственно в ваши файлы js с помощью инструмента построения, такого как gulp/хрюкать.
Конечно, можно пойти на 100% в сторону или в другую, однако это непрактично, потому что вы окажетесь неэффективно, используя ту или иную сторону. Например, если вы выполняли всю свою маршрутизацию с помощью экспресс-и angular на каждой отдельной странице, вы игнорировали бы все функции приложения одной страницы и маршрутизацию угловых символов, оставив только цель создания страницы, которая, вероятно, могла бы быть более эффективно с помощью экспресс-и нефрита (или любого другого механизма моделирования шаблонов). Невозможно перейти в другом направлении и выполнить всю вашу маршрутизацию с помощью angular, потому что angular требует api для получения данных, кроме вы включаете все данные вверх, встроенные в html, и я уверен, что вы согласитесь, это плохая идея. (это также исключает монго в этот момент.)