Для того, чтобы ваша структура приложения была в состоянии прослушивания:
- localhost: 9001 - для администраторов
- localhost: 9002 - для клиентов
- localhost: 9003 - для незарегистрированных пользователей
Возможно реализовать, и Node.js
, react.js
полностью поддерживают такое структурирование.Но я сначала напишу свои возможные проблемы как предварительное примечание , а затем посоветую решение на вопрос:
Предварительное примечание:
Случай, упомянутый в вопросе, вероятно, не идеален для каждого, но только для некоторых особых случаев (когда вы знаете, ПОЧЕМУ и ЧТО вы хотите сделать).
В производственной среде вы будете прослушивать только порт 80
(для HTTP ) или 443
(для HTTPS ) для посетителей, участников,и для администратора .Остальные вещи будут обрабатываться вашим приложением самостоятельно.
В бэкэнде вы можете распределить трафик по количеству машин (IP), на каждом из которых работает один и тот же пакет приложений и версия.Таким образом, нет причин использовать несколько портов для одного URL.
(Давайте заключим это здесь, в противном случае оно пойдет шире и шире.)
Решение вопроса:
Теперь, есливы хотите структурировать свое приложение как на 3 разных порта (каждый для отдельной роли или типа пользователя), что может помочь вам настроить дополнительные разрешения доступа для каждого port
;тогда вам понадобится файл Node.js
server.js
для прослушивания нескольких портов.Это также возможно, как упомянуто здесь: работает http-сервер node.js на нескольких портах
Или у вас могут быть разные server1.js
, server2.js
, server3.js
, каждый слушающий на своем порте,Затем вы выбросите или отобразите соответствующие файлы react.js
application bundle
.Вам нужно будет разработать отдельное приложение react.js
для каждого раздела (всего 3).Таким образом, вы можете легко масштабировать и управлять каждым разделом, не смешивая слишком много сложности каждого раздела (web, member, admin).
Конечно, у вас будет один node_modules/
, который будет использоваться вашим NodeJs
приложение.И вы можете запустить все 3 серверных файла из одного package.json
.