Тут важно разобраться как и для чего работает сервер и клиент. Уже давно устоялась тенденция иметь набор микросервисов для работы с разными источниками данных, для разделения ответственности, для устойчивости кода. И отдельно иметь NodeJS сервер для рендера Html и доставки JS.
Микросервисы могут быть написаны совершенно на разных языках и ничего не знают про ваш клиент. NodeJS сервер используется для промежуточной обработки данных + формирование Html, поскольку такой сервер написан на JS и клиентский код так же написан на JS, все приложение можно рендерить как на сервере, так и на клиенте, однако в серверном коде недоступны API браузера, ровно как и в клиентском коде недоступна стандартная библиотека NodeJS, из за этого в коде часто возникают проверки, в каком окружении в данный момент исполняется код.
Такое приложение называется изоморфным. Конечно для разработки изоморфных JS приложений существуют фреймворки, NextJS один из них https://nextjs.org/. В нем есть встроенная поддержка React + SSR, что позволит создавать Single Page приложения способные рендерится на сервере и получать данные по GET запросу из url браузера без экрана загрузки, а на этапе формирования Html на сервере.