Основной вопрос Первый узел + экспресс + угловое приложение в производстве - PullRequest
1 голос
/ 05 апреля 2019

Я создаю свое первое приложение-экспресс-приложение для узлов с углом 7 на внешнем интерфейсе, которое будет развернуто в рабочей среде.У меня есть вопрос ниже:

  1. Какая структура папок предпочтительнее, если я создаю отдельные проекты для узлового и углового или того же проекта (server.js в корне углового проекта и папки сервера для созданияфайлы экспресс сервера)?Что является предпочтительным, и я должен проверить проект в одной папке svn.

  2. Должен ли я использовать babel и создать код сервера узлов с es2015 или продолжить старый подход?

Ответы [ 5 ]

0 голосов
/ 05 апреля 2019

Я использовал следующий подход, который связывает Angular Application и Node server как одно целое.

Шаги для создания структуры проекта:

  1. Создайте новый проект Angular с помощью CLI.
  2. Создайте файл server.js в корневом каталоге проекта и настройте его для отображения содержимого папки dist/ на маршруте /.

Вы можете сослаться на ссылку для кода сервера: https://github.com/nikhilbaby/node-server

Запуск сервера

Обычно я запускаю проект с ng build && node server. Это будет гарантировать, что угловое приложение создается в первую очередь, а затем запускается сервер этого узла.

0 голосов
/ 05 апреля 2019

Ответ 1: Вы должны создать две отдельные структуры папок / репозиториев для внешнего интерфейса и внутреннего интерфейса.

давайте предположим, что ваше приложение быстро растет в то время, когда вы хотите масштабировать свой бэкэнд и хотитеразместить ваше Angular-приложение как статическое веб-приложение с помощью Amazon-S3, поэтому в этот момент вам будет очень легко управлять этим.

Возможно, вы захотите использовать CICD, в этом случае также будет хорошо, если ваш отдельныйпапку, чтобы вы могли создавать отдельные задания CICD для бэкэнда и внешнего интерфейса.

Может быть, ваша компания наняла какого-то разработчика, который является экспертом в области внешнего интерфейса или только в бэкэнде.в этом случае ваша компания не хочет предоставлять им ненужный код доступа.поэтому отдельный репо будет простым вариантом для этого случая.(это может зависеть от подхода вашей команды и компании к разработке)

Ответ 2: Я рекомендую перейти на функции es6 или es6 +.

последняя версия node.js:поддержка некоторых функций es6.например - оператор распространения - уничтожение - классы (вы можете использовать ООП) - функции стрелок - let, const - async await и т. д.

вы можете использовать babel, если какая-либо другая функция не поддерживается node.js.Может быть может быть причина для использования Babel, но я хочу знать, какую особенность вы хотите использовать с Babel?так что я могу объяснить в соответствии с этим.

0 голосов
/ 05 апреля 2019

Как правило, я бы сказал, что разделение кода вашего клиента и сервера на отдельные проекты является предпочтительным, чтобы вам не приходилось одновременно выпускать и свой клиент, и сервер, когда вы вносите изменения в один или другой. Остальная часть моего ответа основана на предположении, что вы разделите две стороны на разные проекты.

Что касается структурирования приложения на стороне сервера Express, просмотрите эту ссылку , чтобы узнать, как справиться с вашей ситуацией. См. Ответ на первый вопрос о различных подходах к структурированию приложения Express для различных сценариев развертывания. Кроме того, если вы используете последнюю версию LTS-узла, вам не нужно будет использовать транспортер для преобразования ваших файлов в Javascript, потому что среда Node справится с этим за вас.

Что касается структурирования вашего клиентского приложения на основе Angular, посмотрите эту ссылку для очень подробного обсуждения передовых методов структурирования вашего Angular-приложения.

0 голосов
/ 05 апреля 2019

Я бы предпочел следующее, на случай, если в будущем вам понадобится разделить уровень API с клиентом, вы можете сделать это легко,

project
  |----client
   | ---client-template //All UI code like .css/htmls and node process initiates from here
   | ---client-angular // All the directives and controllers goes here
   | ---client-service //Service layer, All the API call to server goes here
  |----server
   | ---server API's // separated by its own module if any 
     |--- you API modules and so on..

Это поможет вам обеспечить гибкость интеграции клиента и сервера без какой-либо жесткой связи. Также прост в обслуживании и отладке.

0 голосов
/ 05 апреля 2019

Все зависит от вас, что я делаю, у меня есть отдельный каталог для Angular и Node projet

project 

|

client - Your anguar project 
server - Your Apis and server side coding (Only this folder require at productino level)

Затем мы можем создать файл gulp и задачу для gulp the Build my clientспроектируйте и поместите эту папку сборки в

server -> public

Теперь только сервер можно использовать для производства, где Build будет отображаться как статический.

А рядом с процессом аутентификации и аутентификации вы можете следовать разрешению на основе JWT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...