Развертывание / запуск: локальный Express веб-сервер и локальное клиентское приложение angular, которое отправляет ajax запросы на этот локальный веб-сервер - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть:

  1. Узел * * Веб-сервер на базе express , который должен работать только на локальной машине пользователя
  2. An angular клиентское приложение , которое отправляет запросы GET Http на этот локальный веб-сервер для получения данных в JSON и отображения их в браузере

В моей среде разработчиков я запускаю эти следующим образом:

  1. npm run dev (в каталоге веб-сервера express). Он выдает: «Express сервер прослушивает порт 7000» и готов к приему запросов
  2. npm start (по каталогу клиентского приложения). Это запускает клиентское приложение в браузере. Затем я могу набирать, нажимать кнопки и отображать данные (с веб-сервера).

Я хочу предоставить эту систему конечному пользователю удобным для него способом:

  1. Целевая среда Windows. В идеале они должны запускать одну установку (например, из MSI-файла).
  2. Когда установка будет завершена, они смогут запустить систему (как веб-сервер, так и клиентское приложение) с помощью одной команды.
  3. Конечный пользователь не должен ничего знать об узле, npm, .. et c, и при этом они не должны знать домашние каталоги этих двух компонентов - фактически они могут даже не знать что используется локальный express веб-сервер.

Важна не только удобная установка, но и возможность запуска обоих компонентов системы с помощью одной пользовательской команды. Когда пользователь закрывает клиентское приложение, в идеале веб-сервер express также должен быть закрыт.

Я играл с электроном. js, но, похоже, он не будет развертываться и запустите сервер express, необходимый для электронного приложения. Также прочитайте о nw. js, но я не видел ни одного примера, похожего на мой сценарий.

Я знаю, что может быть ??? Я могу реализовать серверную сторону как один из процессов электронного рендеринга и вместо HTTP использовать межпроцессное взаимодействие (IP C) для связи с клиентским приложением (еще один процесс рендеринга), в котором задействован основной процесс. Однако это потребует существенной доработки этой уже существующей системы, что потребует значительного времени и в настоящее время недоступно.

Возможен ли сценарий развертывания и использования (1, 2, 3 выше) и каковы лучшие инструменты, которые можно использовать для реализации такого сценария развертывания и выполнения?

Не могли бы вы дать ссылку на любую такую ​​реализацию? И / или идеально маленький / полный пример кода?

1 Ответ

1 голос
/ 20 апреля 2020

Да, вы можете сделать это. Йо может упаковать как электронное приложение, так и сервер express в производство. При разработке вам необходимо разработать приложение express и выполнить его, используя nodejs child-process module . Здесь вы можете использовать exec команду или spawn команду (я предпочитаю exe c, простой в использовании). Вы можете начать процесс express с вашего электронного main процесса. Дождитесь настройки сервера express и перейдите к приложению.

А для кукловода я предлагаю вам взглянуть на эту ветку github . Они говорят выполнить кукловода на main process и передать процессы main и renderer с помощью электронного IP C

Для сборки windows Установщик, я думаю, что лучше использовать электронный строитель и создать nsis установщик с подписанным сертификатом

...