Нод / экспресс-бэкэнд с угловым интерфейсом в одном веб-приложении Azure - PullRequest
0 голосов
/ 20 июня 2019

У меня есть настройка Node / Express в dev, которая выводит данные в виде JSON для потребления. В dev этой конечной точкой является localhost: 3000 / data

У меня также есть приложение Angular 8 в том же каталоге узлов для внешнего интерфейса. В dev я запускаю два отдельных командных запроса Node ... один для запуска узла / экспресса на порту 3000, а другой для углового на порту 4200.

Цель состоит в том, чтобы приложение Angular выводило данные, которые серверная часть Node / Express предоставляет ... в веб-приложение Azure.

Я прочитал статьи, в которых говорится о том, как развернуть Angular в WebApp, но могу ли я иметь как серверные данные Node / Express, обслуживающие данные, так и приложение Angular, работающее в одном веб-приложении Azure ... или мне нужно создать два отдельные приложения и использовать листинг CORS для внешнего интерфейса для взаимодействия с бэкэнд-веб-приложением?

Я предполагаю, что мне нужно будет использовать Express для запуска Angular, а затем выполнить сборку вместо Express и Angular на отдельных портах?

1 Ответ

1 голос
/ 20 июня 2019

Вы можете использовать Angular и Express в одном и том же каталоге, а промежуточное программное обеспечение - в экспрессе, поэтому, когда вы делаете запрос, промежуточное ПО определяет, является ли он URL-адресом «/ data» или простым URL-адресом, и отправляет индексный файл, генерируемый Angular напапка dist.

  1. Переместить app.js в папку приложения Angular
  2. Вставить этот код;
     app.use(express.static(path.join(__dirname, '/dist/<your Angular App Name>')));

     app.use('/data', <your route file>);
     app.use(function(req, res) {
     res.sendFile(path.join(__dirname, '/dist/<your Angular App Name>', 'index.html'));

При этом Angular и Express будут работать на локальном хосте: 3000.

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