Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2018, 07:20
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

Управление бэкендом с клиента
Как можно реализовать такой процесс:

На сервере я запускаю приложение
node server_1.js

На клиенте в input ввожу команду:
server_1.js stop, server_2.js start

На сервере:
server_1.js приняв команду запускает server_2.js, а сам закрывается
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2018, 11:06
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

А что должно произойти с подключенным клиентом?

Надо наверное какой-нибудь агент, к которому подключается клиент, и агент управляет созданием/удалением процессов.

https://nodejs.org/api/child_process.html

https://medium.freecodecamp.org/node...w-e69498fe970a
Ответить с цитированием
  #3 (permalink)  
Старый 27.09.2018, 11:28
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

Сейчас у меня на сервере стоит nodemon, а серверный скрипт я правлю через winscp с открытием в sublimeText.

Я хочу избавится от установки на ПК любого софта кроме браузера.
Цель:
Я хочу зайдя на свою страницу администратора, ввести в input команду скажем get server.js
сервер возвращает его код, я в редакторе на самой странице правлю скрипт, нажимаю сохранить.
И server.js перезапускается.

То есть на клиенте я ввожу команду на получения ресурсов сервера для редактирования и последующего сохранения на сервере с перезапуском.

Это вроде CMS называется.

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

Вроде как онлайн-редактор бэкенда моего сайта со страницы администратора.

Последний раз редактировалось Teamur, 27.09.2018 в 11:32.
Ответить с цитированием
  #4 (permalink)  
Старый 27.09.2018, 13:35
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Раз есть страница администратора, тогда не понятно зачем вводить какие-то команды.

Банальный fileexplorer в браузере, ходи по папкам и выбирай файл, поправил файл, нажал кнопку перезапустить. Даже редактор кода можно вставить.

буквально 1 минута на поиск)
https://www.npmjs.com/package/node-file-manager
https://codemirror.net/
http://pm2.keymetrics.io/
Ответить с цитированием
  #5 (permalink)  
Старый 12.02.2019, 22:57
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Хочу поднять эту тему. У меня тоже есть аналогичная потребность.

Сообщение от SuperZen Посмотреть сообщение
Раз есть страница администратора, тогда не понятно зачем вводить какие-то команды.
Если я правильно понял, нет никакой страницы администратора. Нечто очень простое типа такой страницы админа и надо сделать. Для простоты понимания уберем редактор кода, авторизацию на странице тоже не рамссматриваем. На сервере работает myserver.js, который как-то там запущен на Node.js

Что необходимо: чтобы я на смартфоне (на своей веб-странице "mypage") ввел какой-то параметр (пусть в простой input), нажал кнопку "OK" и после этого myserver.js должен перезапуститься с учетом нового параметра.

То есть, сервер, слушающий на каком-то порту XXXXX, должен получить такую вот "команду" с параметром и сам себя полностью перезапустить, да еще и работать в режиме daemon. Как такое сделать?

Нюанс в том, что с новым параметром myserver.js может запуститься, но свалиться по ошибке. Тогда вообще уже mypage станет бесполезной (она просто не откроется).

Рассмотрю любые идеи. На сервере Centos 7 стоит Apache и PHP 7. Может страницу mypage открывать на PHP и с помощью PHP как-то запускать/перезапускать myserver.js? Это как бы независимый от Node.js канал работы с сервером. Например что-то вроде такого:
exec('node myserver.js');
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2019, 07:19
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Маэстро
Нюанс в том, что с новым параметром myserver.js может запуститься, но свалиться по ошибке. Тогда вообще уже mypage станет бесполезной (она просто не откроется).
Чтобы ничего не свалилось нужно наверное проверить на сервере "команду" с параметром, и если они валидные, перезапускать или что-то еще делать.
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2019, 11:12
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от j0hnik Посмотреть сообщение
Чтобы ничего не свалилось нужно наверное проверить на сервере "команду" с параметром, и если они валидные, перезапускать или что-то еще делать.
Конечно да, всё надо проверять. Но с точки зрения валидатора "команда" - это может быть просто цифра из диапазона 1-10 и она валидная. А сервер может свалиться по другим причинам. Не акцентируйте внимание на "команде". Отправка команды в инпуте - это я упрощенно сформулировал задачу. Данные для работы сервера могут быть переданы и другим способом, например, это может быть файл "mama.txt", предварительно положенный на сервер по FTP.

Для понимания задачи давайте упраздним и это. Задача сводится к тому, чтобы иметь свою страницу https://mysite.com/mypage.html с тремя кнопками "Рестарт", "Стоп" и "Пуск". Понятное дело, что если остановить сервер, генерирующий, страницу mypage.html, то дальше мрак. Но хотя бы вариант с одной кнопкой "Рестарт" можно сделать?
Как это реализовать через браузер?
Ответить с цитированием
  #8 (permalink)  
Старый 13.02.2019, 12:20
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Маэстро,
Какой в этом смысл? если нужно перегружать при изменении файлов поставьте nodemon
если просто так от скуки то reload подойдет

Последний раз редактировалось j0hnik, 13.02.2019 в 12:29.
Ответить с цитированием
  #9 (permalink)  
Старый 13.02.2019, 12:42
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от j0hnik Посмотреть сообщение
Какой в этом смысл?
Профессор, по этикету я не вправе делать Вам замечание, но зачем отвечать вопросом на вопрос? Если человек спрашивает, значит ему это зачем-то нужно. Вот один из смыслов:
Я нахожусь в одной стране, предприятие с локальной сетью в другой, вебсервер физически в третьей. Умные дяденьки (сисадмины) настроили следующую цепочку доступа к серверу:
Сначал я должен с помощью удаленного доступа (Microsoft) войти в локальную сеть предприятия (логин/пароль раз), подключиться к моей виртуальной рабочей станции в сети. Только из локальной сети я могу запустить программу winscp (логин/пароль два), чтобы подключиться к серверу и что-то на него скопировать. Чтобы выполнить какие-то команды на сервере или перезапустить Node.js-сервер я еще должен запустить Путти, зайти под SSH (логин/пароль три). Кроме всего этого виртуальная станция настроена таким образом, что через 5 минут (?!) бездействия она лочится и логин/пароль приходится вводить заново (N раз).
Я уважаю информационную безопасность, но для частной задачи хотелось бы не проходить крым/рым/медные трубы.

Неужели никому больше не требуется удаленно перезапускать Node-сервер?
Ответить с цитированием
  #10 (permalink)  
Старый 13.02.2019, 12:47
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от j0hnik Посмотреть сообщение
если нужно перегружать при изменении файлов поставьте nodemon если просто так от скуки то reload подойдет
этот текст был добавлен (отредатирован) уже после моего сообщения, поэтому дополню своё.
Спасибо за совет. Но можете подробнее? Как оперируя только одной вебстраницей сделать reload сервера?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
узнать Ip адрес клиента polin11 Node.JS 0 05.11.2016 14:13
Чтение файла на стороне клиента annie88 Javascript под браузер 18 13.01.2016 10:44
Как проверить сайт клиента на установленный блок Alexmad Серверные языки и технологии 10 02.04.2015 20:03
web управление на основе javascript MaksLuk Элементы интерфейса 31 29.03.2015 21:27
Как оборвать на сервере и клиенте запрос если у клиента пропала сеть. beard AJAX и COMET 3 21.12.2012 16:35