У меня есть:
- веб-сервер на базе Node Express, который должен работать только на локальном компьютере пользователя.
- клиентское приложение angular, которое отправляет запросы GET Http на этот локальный веб-сервер, чтобы получить данные в формате JSON и отобразить их в браузере.
В моей среде разработки я запускаю их следующим образом:
npm run dev
(в каталоге экспресс-веб-сервера). Выдает: "Экспресс-сервер прослушивает порт 7000" и готов принимать запросыnpm start
(в каталоге клиентского приложения). Это запускает клиентское приложение в браузере. Затем я могу печатать, нажимать кнопки и отображать данные (с веб-сервера).
Я хочу предоставить эту систему конечному пользователю в удобном для него виде:
- Целевая среда — Windows. В идеале они должны запускать одну установку (например, из файла .msi).
- Когда установка будет завершена, они смогут запустить систему (как веб-сервер, так и клиентское приложение) с помощью одной команды.
- Конечный пользователь не должен ничего знать об узле, npm, .. и т. д., а также не должен знать домашние каталоги двух компонентов — на самом деле он может даже не знать, что используется локальный экспресс-веб-сервер.
Важна не только удобная установка, но и возможность запуска обоих компонентов системы одной пользовательской командой. Когда пользователь закрывает клиентское приложение, в идеале экспресс-веб-сервер также должен быть закрыт.
Я играл с electron.js, но, похоже, он не развернет и не запустит экспресс-сервер, который необходим электронное приложение. Также читайте о nw.js, но не видели ни одного примера, похожего на мой сценарий.
Я знаю, что может быть??? Я могу реализовать серверную часть как один из процессов электронного рендеринга и вместо HTTP использовать межпроцессное взаимодействие (IPC) для связи с клиентским приложением (другой процесс рендеринга), в котором задействован основной процесс. Однако для этого потребовалась бы существенная переработка уже существующей системы, что потребовало бы значительного времени и в настоящее время недоступно.
Возможен ли сценарий развертывания и использования (1, 2, 3 выше) и какие инструменты лучше всего использовать для реализации такого сценария развертывания и выполнения?
Не могли бы вы предоставить ссылки на любые такие реализации? И/или идеально небольшие/полные примеры кода?
spawning a child-process
из своего электронного приложения. поэтому пользователю не нужно управлять экспрессом. как только сервер будетok
, приложение должно продолжить и работать nodejs.org/api/ - person namila007   schedule 20.04.2020