Элементарно было бы просто пройтись по гуглу, чем такое писать)
Все что я написал взято не из облаков мыслей, а заюзал на практике.
Судя по тому что вы пишите, еще не сталкивались с этими проблемами, но предстоит как только начнешь писать на фреймворке под нодой.
начала свои собственные определения терминов "Фронтенд" и "Бекенд"..
Джавараст Скриптович, допустим у тебя 5000 пользователей, каждый из них делает запросы, даже допустим 10% будут из них блокирующими, даже по 1сек, это большой отрезок времени в сумме на 500 пользователей.
Ты не сможешь бесконечно расширять свои кластеры.
По итогу ты или сразу клиенту отдаешь ответ без данных, и говоришь типа запроси через 1сек, я тебе отдам че получилось.
Или делаешь бекенд синхронным многопотоковым как пыха или подобное.
Должен быть всегда максимально быстрый ответ для КАЖДОГО пользователя, никто не должен ждать кого то. Который ждет чего то серьезного, он пусть хоть 20 сек висит, а другие 4999 пользователей должны получить что хотят сразу
Асинхронность - вот возьмем простой пример добавления статьи на сайт, используя ОРМ или чистым для mysql или mongo на node.js.
С клиента приходит ajax запрос на добавление с данными, добавление данных предположим добавляется долго ну секунды 3, это блокирующая операция.
Есть два варианта решения :
а) как ты хочешь с помощью промисов, тогда клиенту надо отдать сразу ответ, и обрабатывать не блокируя, тогда когда клиент поймет что данные добавились в БД? Опрос аяксом? сокетами?
Получается оверхед по коду и логике, так не делают чаще всего.
б) Дождаться ответа от сервера и отобразить клиенту что-то. Тогда операция блокирующая, и все запросы на ноду будут стопаться, пока не отработает основной скрипт.
Отсюда вывод, чтобы ничего не блокировать лучше юзать то, что лучше подходит для этого пыха там и т.п.
ради моего интереса, можно примеры?
Да тот же DI в симфони или ларавеле, нормальное ООП, нормальные ОРМ которые очень мощные, и куча библиотек (ну на ноде тоже есть, на пыхе больше) или другом языке, java, python)
Есть такое понятие как бэкенд и фронтенд.
1) Бэкенд там где крутится бизнес логика, на java, php, go, etc..
2) Фронтенд то что обрабатывает запрос от клиента и уже отправляет на обработку, например nginx чаще всего, далее node.js тоже может быть им, но чаще можно встретить связку nginx->node.js->api(backend). nginx уже используется как балансировщик нагрузки меж нодами.
Суть моего посыла в том, чтобы не юзать на ноде фреймворк, он только обрабатывает SSR (для vue or react) и мелочевку в виде socket.io и бла бла бла.
Алексей Повольнов, на своем компе ты устанавливаешь https://cli.vuejs.org/ru/guide/ делаешь все что нужно, и после компиляции создаешься папка build. в ней уже статичные JS файлы, скомпилирированные. И уже можешь переносить на сервер с html, или куда там.