Привет!
Сейчас у меня есть некое элементарное приложение, крутится у меня на компьютере.
Устроено так:
В одной папке лежит angular-cli приложение, которое запускается на localhost:3000
В другой папке лежит "сервер" на nodejs, который слушает localhost:3030
Все это одновременно запущено, и Аргуляр-клиент через REST запросы общается с сервером (по сути сервер просто обрабатывает запросы, и кладет их в базу (MySQL). И обратно.
Теперь я хочу это все как-то грамотно перенести на сервер (думаю про DigitalOcean)
Как правильно это все организовать? Чтобы это все работало, и деплоилось.
Как я это себе представляю:
у клиента и сервера есть свои репозитории (у меня на BitBucket).
Как только происходит мерж в master - на серверах запускается билд (я хз, можно ли это вообще как-то связать друг с другом). Проходят тесты.
Для сервера я не знаю, собирается ли там бандл, или нет. Но, наверное, лучше собирать. Для клиента создается папка, куда кладется статика, Ангуляра, которая потом будет отдаваться по основному урлу приложения.
То есть надо это все настроить так, чтобы по запросу
site.com запускался сервак, который будет отдавать статику (которую соберет angular-cli), а эта статика уже будет делать запросы к серверному приложению, чтобы взять данные из БД. (но по какому адресу и порту?)
Таким образом я представляю себе файловую структуру
./-- index.js - этот файлик слушает обращения на
site.com и отдает в браузер собранный бандл из /client
-- /client - тут лежит собранная статика клиента
-- /server - тут идет вся обработка запросов от клиента + хранятся пользовательские файлы (например загруженные картинки)
И еще весьма важно, чтобы
/server мог принимать запросы не только от этого клиента, но и внешние запросы, от, например, мобильных приложений.
В общем буду признателен за любую информацию по теме, за любые ссылки, или разъяснение принципов на пальцах.
Потому что для меня сейчас это весьма темный лес, я просто не очень понимаю в какую сторону копать.
Спасибо!