Перейти к содержимому

Как остановить node js сервер

  • автор:

Руководство. Подготовка веб-приложения для Служб коммуникации Azure (Node.js)

Службы коммуникации Azure можно использовать, добавлять в приложения средства коммуникации в реальном времени. В этом руководстве показано, как настроить веб-приложение, которое поддерживает Службы коммуникации Azure. Это вводное руководство для разработчиков, желающих ознакомиться с возможностями коммуникаций в реальном времени.

Завершив работу с этим руководством, вы получите базовое веб-приложение, настроенное с использованием пакетов SDK Служб коммуникации Azure. Затем такое приложение можно будет использовать для создания решения для коммуникации в режиме реального времени.

Вы можете посетить страницу Служб коммуникации Azure на сайте GitHub и оставить там свой отзыв.

В этом руководстве описано следующее:

  • настройка среды разработки;
  • настройка локального веб-сервера;
  • добавление пакетов Служб коммуникации Azure на веб-сайт;
  • публикация веб-сайта на статических веб-сайтах Azure.

Предварительные требования

  • Учетная запись Azure с активной подпиской. Дополнительные сведения см. на странице Создайте бесплатную учетную запись Azure уже сегодня. Бесплатная учетная запись предусматривает предоставление 200 долл. США в качестве денег на счете в Azure, что позволяет испытать в работе любое сочетание служб.
  • Visual Studio Code для редактирования кода в локальной среде разработки.
  • webpack для создания пакета кода и его размещения в локальной среде.
  • Node.js для установки зависимостей и управления ими, например для пакетов SDK и webpack Служб коммуникации Azure.
  • nvm и npm для управления версиями.
  • Расширение службы хранилища Azure для Visual Studio Code. Это расширение требуется для публикации приложения в службе хранилища Azure. Подробнее о размещении статических веб-сайтов в службе хранилища Azure.
  • Расширение Службы приложений Azure. Это расширение позволяет развертывать веб-сайты с дополнительной возможностью настройки полностью управляемой среды непрерывной поставки и непрерывной интеграции (CI/CD).
  • Расширение Функций Azure для создания собственных бессерверных приложений. Например, вы можете разместить в Функциях Azure приложение проверки подлинности.
  • Активный ресурс Служб коммуникации и строка подключения. Практическое руководство по созданию ресурса Служб коммуникации.
  • Маркер доступа пользователя. Инструкции см. в кратком руководстве по созданию маркеров доступа и управлению ими, а также в руководстве по созданию доверенной службы проверки подлинности.

Настройка среды разработки

Локальная среда разработки будет иметь следующую конфигурацию:

Экран

Установка Node.js, а также nvm и npm

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

Разработчики Windows могут воспользоваться этим руководством по Node.js, чтобы настроить Node, nvm и npm.

Это руководство основано на версии LTS 12.20.0. После установки nvm выполните следующую команду PowerShell, чтобы развернуть нужную версию:

nvm list available nvm install 12.20.0 nvm use 12.20.0 

Экран

Настройка Visual Studio Code

Создание рабочей области для проектов Служб коммуникации Azure

Создайте папку для хранения файлов проекта, например: C:\Users\Documents\ACS\CallingApp . В Visual Studio Code выберите Файл>Add Folder to Workspace (Добавить папку в рабочую область), а затем добавьте созданную папку в рабочую область.

Экран

На панели слева откройте обозреватель. Здесь вы увидите созданную папку CallingApp в рабочей области БЕЗ ИМЕНИ.

Экран

Вы можете указать для рабочей области любое имя. Чтобы проверить версию Node.js, щелкните правой кнопкой мыши папку CallingApp и выберите Open in Integrated Terminal (Открыть во встроенном терминале).

Экран

В окне терминала введите следующую команду, чтобы проверить версию Node.js, которую мы установили на предыдущем шаге:

node --version 

Экран

Установка расширений Azure для Visual Studio Code

Установите расширение службы хранилища Azure из Visual Studio Marketplace или прямо в Visual Studio Code (Представление>Расширения>Служба хранилища Azure).

Экран

Выполните эти же действия для расширений Функций Azure и Службы приложений Azure.

Настройка локального веб-сервера

Создание пакета npm

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

npm init -y 

Эта команда инициализирует новый пакет npm и добавляет package.json в корневую папку проекта.

Экран

Дополнительную документацию по npm init см. на странице документации по npm для этой команды.

Установка webpack

Вы можете использовать webpack для упаковывания кода в статические файлы, которые можно развернуть в Azure. Это решение включает в себя собственный сервер разработки, который можно настроить для работы с примером вызова.

В терминале введите следующую команду, чтобы установить webpack:

npm install webpack@4.42.0 webpack-cli@3.3.11 webpack-dev-server@3.10.3 --save-dev 

Это руководство протестировано с версиями, указанными в предыдущей команде. Указание -dev сообщает диспетчеру пакетов, что эта зависимость предназначена для разработки и ее не нужно добавлять в код, развертываемый в Azure.

Вы увидите, что в файл package.json в раздел devDependencies добавлены два новых пакета. Эти пакеты будут установлены в каталог ./CallingApp/node_modules/ .

Экран

Настройка сервера разработки

При запуске в браузере статического приложения (например, файла index.html ) используется протокол file:// . Чтобы модули npm работали правильно, нужно использовать протокол HTTP, настроив webpack в качестве локального сервера разработки.

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

Средство webpack-merge следует применить для работы с разными файлами конфигурации для webpack.

Сначала давайте настроим среду разработки. Сначала необходимо установить webpack merge . В терминале выполните приведенную ниже команду.

npm install --save-dev webpack-merge 

Вы увидите, что в файл package.json в раздел devDependencies добавлена еще одна зависимость.

Затем создайте новый файл webpack.common.js и добавьте в него следующий код:

const path = require('path'); module.exports = < entry: './app.js', output: < filename:'app.js', path: path.resolve(__dirname, 'dist'), >> 

Затем следует добавить еще два файла, по одному для каждой конфигурации:

  • webpack.dev.js
  • webpack.prod.js

Теперь измените файл webpack.dev.js , добавив к нему следующий код:

const < merge >= require('webpack-merge'); const common = require('./webpack.common.js'); module.exports = merge(common, < mode: 'development', devtool: 'inline-source-map', >); 

В этой конфигурации общие параметры импортируются из webpack.common.js , затем два файла объединяются, устанавливается режим development и sourcemap определяется как inline-source-map .

Режим разработки означает, что webpack не будет минифицировать файлы и создавать оптимизированные рабочие файлы. Подробную документацию по режимам webpack можно найти на веб-странице webpack «Режим».

Параметры sourcemap перечислены на веб-странице webpack Devtool. Настройка SourceMap упрощает отладку в браузере.

Экран

Чтобы запустить сервер разработки, перейдите к package.json и добавьте следующий код в раздел scripts :

 "build:dev": "webpack-dev-server --config webpack.dev.js" 

Теперь этот файл будет выглядеть так:

< "name": "CallingApp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": < "test": "echo \"Error: no test specified\" && exit 1", "build:dev": "webpack-dev-server --config webpack.dev.js" >, "keywords": [], "author": "", "license": "ISC", "devDependencies": < "webpack": "^4.42.0", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3" >> 

Вы добавили команду, которую можно использовать из npm.

Экран

Тестирование сервера разработки

Создайте в Visual Studio Code три файла в папке проекта:

  • index.html
  • app.js
  • app.css (необязательно, для задания стиля приложения)

Вставьте этот код в index.html :

     My first Azure Communication Services application   

Hello from Azure Communication Services!

Экран

Добавьте в app.js следующий код:

alert('Hello world alert!'); console.log('Hello world console!'); 

Добавьте в app.css следующий код:

html

Не забудьте сохранить! Несохраненный файл будет обозначен белой точкой рядом с именем файла в Explorer.

Экран

Открыв эту страницу, вы увидите сообщение с оповещением в консоли браузера.

Экран

Выполните в терминале следующую команду, чтобы протестировать конфигурацию разработки:

npm run build:dev 

Консоль отобразит сообщение о том, какой у работающего сервера адрес. По умолчанию это http://localhost:8080 . Команда build:dev — это команда, добавленная package.json ранее.

Экран

Перейдите в браузере по адресу сервера и убедитесь, что открываются ранее настроенные страница и оповещение.

Экран

Пока сервер работает, вы можете внести любые изменения в код и сервер. HTML-страница автоматически перезагрузится.

Затем перейдите к файлу app.js в Visual Studio Code и удалите alert(‘Hello world alert!’); . Сохраните этот файл и убедитесь, что оповещение исчезнет из браузера.

Чтобы остановить сервер, выполните Ctrl+C в терминале. Чтобы запустить сервер в любое время, введите npm run build:dev .

Добавление пакетов Служб коммуникации Azure

Используйте команду npm install , чтобы установить пакет SDK Служб коммуникации Azure для реализации вызовов на JavaScript.

npm install @azure/communication-common --save npm install @azure/communication-calling --save 

Это действие добавляет общие пакеты и пакеты вызовов Служб коммуникации Azure в качестве зависимостей пакета. Вы увидите,что в файл package.json добавлены два новых пакета. Дополнительные сведения о npm install см. на странице документации по npm для этой команды

Экран

Эти пакеты предоставляются командой разработчиков Служб коммуникации Azure и содержат библиотеки проверки подлинности и вызова. Команда —save сообщает, что приложение зависит от этих пакетов в рабочей среде, а значит их нужно включить в devDependencies файла package.json . Теперь при сборке приложения для рабочей среды указанные пакеты будут добавлены в рабочий код.

Публикация веб-сайта на статических веб-сайтах Azure

Создание конфигурации для развертывания в рабочей среде

Добавьте в webpack.prod.js следующий код:

const < merge >= require('webpack-merge'); const common = require('./webpack.common.js'); module.exports = merge(common, < mode: 'production', >); 

Эта конфигурация будет объединена с webpack.common.js (где вы указали входной файл и где сохраняются результаты). В конфигурации также будет задан режим production .

В классе package.json добавьте следующий код.

"build:prod": "webpack --config webpack.prod.js" 

Файл должен выглядеть следующим образом.

< "name": "CallingApp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": < "test": "echo \"Error: no test specified\" && exit 1", "build:dev": "webpack-dev-server --config webpack.dev.js", "build:prod": "webpack --config webpack.prod.js" >, "keywords": [], "author": "", "license": "ISC", "dependencies": < "@azure/communication-calling": "^1.0.0-beta.6", "@azure/communication-common": "^1.0.0" >, "devDependencies": < "webpack": "^4.42.0", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3", "webpack-merge": "^5.7.3" >> 

Экран

В окне терминала выполните следующую команду:

npm run build:prod 

Эта команда создает папку dist с готовым к работе статическим файлом app.js .

Экран

Развертывание приложения в службе хранилища Azure

Скопируйте index.html и app.css в папку dist .

В папке dist создайте файл с именем 404.html . Скопируйте в этот файл следующий код разметки:

      Document  

The page does not exists.

Сохраните файл (CONTROL + S).

Щелкните папку dist правой кнопкой мыши и выберите вариант Deploy to Static Website via Azure Storage (Развертывание на статическом веб-сайте через службу хранилища Azure).

Экран

В разделе Выбор подписки выберите Войти в Azure (или Создать бесплатную учетную запись Azure, если вы еще не создали подписку).

Экран

Выберите Создать новую учетную запись хранения>Дополнительно.

Экран

Укажите имя группы для хранилища:

Экран

Если нужно, создайте группу ресурсов:

Экран

Для параметра Would you like to enable static website hosting? (Включить размещение статических веб-сайтов) выберите вариант Да.

Экран

В поле Enter the index document name (Введите имя документа индекса) примите имя файла по умолчанию. Вы уже создали файл index.html .

В поле Enter the 404 error document path (Введите путь к документу с сообщением об ошибке 404) введите 404.html.

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

Службы коммуникации Azure выбирают обработчик мультимедиа в зависимости от расположения приложения.

Экран

Дождитесь, пока завершится создание ресурса и веб-сайта.

Выберите Browse to website (Перейти к веб-сайту).

Экран

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

Экран

Перейдите на портал Azure, выберите созданные группу ресурсов и приложение. Затем выберите Параметры>Статический веб-сайт. Вы увидите, что статические веб-сайты включены. Обратите внимание на основную конечную точку, имя документа индекса, а также путь к документу с сообщением об ошибке.

Экран

Выберите элемент Контейнеры в разделе Служба BLOB-объектов. В списке показаны два созданных контейнера: один для журналов ( $logs ) и один для содержимого вашего веб-сайта ( $web ).

Экран

Если вы откроете контейнер $web , то увидите файлы, которые были ранее созданы в Visual Studio и развернуты в Azure.

Экран

Приложение можно в любой момент повторно развернуть из Visual Studio Code.

Теперь вы готовы к созданию первого веб-приложения Служб коммуникации Azure.

Дальнейшие действия

Кроме того, вам может понадобиться следующее:

  • Добавление чата в приложение
  • Создание маркеров доступа пользователей
  • Сведения об архитектуре клиент-сервер
  • Сведения о проверке подлинности

как остановить сервер node js

Чтобы остановить сервер Node.js, необходимо нажать «Ctrl + C» в терминале, в котором запущен сервер. Ниже приведен пример:

[process был прерван] 

Видим, что в терминале появилось сообщение, процесс был прерван. Теперь сервер Node.js остановлен и не будет прослушивать соединения.

Также, есть возможность удаленного управления процессами на Node.js. Одним из таких решений является pm2 process manager.

Как вы перезапускаете локальный сервер node.js при разработке?

Когда пишешь на node.js, цепочка обновления кода длиннее: сначала нужно переключиться в консоль, остановить сервер, запустить сервер, перейти в браузер, нажать f5.

После 50-го раза за день сильно надоедает. Поэтому мне интересно, как справляются с этой проблемой те, кто имеет некоторый опыт разработки на node.js? Настраиваете в IDE перезапуск сервера на команду build?

Например, в Django такой проблемы вовсе нет, там девелоперский сервер следит за изменением исходников и сам автоматически перезагружается. А тот же php транслируется при каждом запросе.

Как остановить npm?

Я запускаю сайт на node.js на vds хостинге с помощью npm start server.js . Все работает, консоль выводит логи, другие могут заходить по ip. Если нужно перезапустить node, приходится перезагружать весь сервер и заново запускать node. У себя на компе (на windows) я просто закрывал консоль. Как реализовать остановку и рестарт node из консоли для хостинга?

Отслеживать
11.9k 5 5 золотых знаков 28 28 серебряных знаков 40 40 бронзовых знаков
задан 17 янв 2018 в 12:59
Данис Хамидуллин Данис Хамидуллин
67 1 1 золотой знак 2 2 серебряных знака 7 7 бронзовых знаков

Ну, если вы орудуете через putty, то проще всего поставить утилиту screen и работать в ней. По моему чтобы завершить процесс, нужно всего лишь выполнить команду ctrl+c.

17 янв 2018 в 13:03
Возможный дубликат вопроса: Как сделать, чтобы nodeJs сервер работал без активированной консоли?
17 янв 2018 в 15:00

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Используй сочетание кнопок CTRL + C чтобы остановить. И научись пользоваться screen, я скинул тебе мануал как работать с ним в CentOS, но для других ОС тоже есть и использование аналогично, установка немного различна, но суть почти одна и та же.

Создай файл run.sh и запускай через него, будет в будущем удобно, особенно когда нормально разберешься.

#Путь до проекта cd /www/test.com/ #Запуск проекта, Test - название процесса screen -S Test npm run start 

Скрипт можешь добавить в автозагрузку, тогда сервер будет стартовать сразу же после включения

В packege.json укажи

"scripts": < "start": "node start server.js" >, 

Если ты во время разработки постоянно перезапускаешь сервер, то можешь воспользоваться nodemon, он следит за файлами и если, что-то изменилось, то перезапускается

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *