Как остановить node js сервер
Перейти к содержимому

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

  • автор:

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

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

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

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

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

Как автоматически перезапускать приложения Node.js с помощью nodemon

Как автоматически перезапускать приложения Node.js с помощью nodemon

В Node.js для вступления изменений в силу необходимо перезапустить процесс. Это добавляет в рабочий процесс дополнительный шаг, необходимый для внесения изменений. Вы можете устранить этот дополнительный шаг, используя nodemon для автоматического перезапуска процесса.

nodemon — это утилита командной строки, разработанная @rem. Она заключает в оболочку ваше приложение Node, наблюдает за файловой системой и автоматически перезапускает процесс.

Из этой статьи вы узнаете об установке и настройке nodemon .

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

Если вы захотите следовать за этой статьей, вам потребуется следующее:

  • Локальная установка Node.js, выполненная согласно указаниям учебного модуля Установка Node.js и создание локальной среды разработки.

Шаг 1 — Установка nodemon

Вначале вам нужно будет установить nodemon на вашем компьютере. Установите утилиту в проекте глобально или локально, используя npm или Yarn:

Глобальная установка

Вы можете установить nodemon глобально с помощью npm :

Или с помощью Yarn:

Локальная установка

Также вы можете установить nodemon локально с помощью npm. При локальной установке мы можем установить nodemon как зависимость dev с помощью —save-dev (или —dev ):

Или с помощью Yarn:

При локальной установке нужно знать, сможете ли вы использовать команду nodemon напрямую из командной строки:

Однако вы также можете использовать его как часть некоторых скриптов npm или с npx.

На этом процесс установки nodemon завершен. Далее мы будем использовать nodemon с нашими проектами.

Шаг 2 — Настройка образца проекта Example Express с помощью nodemon

Мы можем использовать nodemon для запуска скрипта Node. Например, если у нас имеется настройка сервера Express в файле server.js , мы можем запустить его и наблюдать за изменениями следующим образом:

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

Процесс перезапускается каждый раз, когда вы вносите изменение в файл с одним из отслеживаемых по умолчанию расширений ( .js , .mjs , .json , .coffee или .litcoffee ) в текущем каталоге или подкаталоге.

Допустим мы записываем образец файла server.js , который выводит сообщение: Dolphin app listening on port $! .

Мы можем запустить пример с помощью nodemon :

Мы видим следующий вывод на терминале:

Output
[nodemon] 1.17.3 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node server.js` Dolphin app listening on port 3000!

Пока nodemon еще работает, внесем изменение в файл server.js для вывода сообщения: Shark app listening on port $! .

Мы увидим следующий дополнительный вывод на терминале:

Output
[nodemon] restarting due to changes. [nodemon] starting `node server.js` Shark app listening on port 3000!

Вывод приложения Node.js на терминале отображается, как и ожидалось. Вы можете перезапустить процесс в любое время, набрав rs и нажав ENTER .

Также nodemon будет искать файл main , заданный в файле package.json вашего проекта:

package.json

 // . "main": "server.js", // . > 

Или скрипт start :

package.json

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

После внесения изменений в package.json вы сможете вызывать nodemon для запуска образца приложения в режиме наблюдения без его передачи в server.js .

Шаг 3 — Использование опций

Вы можете изменить параметры конфигурации, доступные nodemon .

Рассмотрим несколько основных опций:

  • —exec : используйте оператор —exec , чтобы задать двоичный код для выполнения файла. Например, в сочетании с двоичным кодом ts-node оператор —exec может быть полезен для наблюдения за изменениями и запуска файлов TypeScript.
  • —ext : задает различные расширения файлов для наблюдения. Для этого оператора требуется указать разделенный запятыми список расширений файлов (например, —ext js,ts ).
  • —delay : по умолчанию nodemon ожидает одну секунду для перезапуска процесса после изменения файла, однако с помощью оператора —delay вы можете указать другое время задержки. Например, nodemon —delay 3.2 для задержки 3,2 секунды.
  • —watch : используйте оператор —watch , чтобы задать несколько каталогов или файлов для наблюдения. Добавляйте один оператор —watch для каждого каталога, за которым вы хотите наблюдать. По умолчанию вы наблюдаете за текущим каталогом и его подкаталогами, а с помощью —watch вы можете сузить область наблюдения до нескольких отдельных подкаталогов или файлов.
  • —ignore : используйте оператор —ignore , чтобы игнорировать определенные файлы, шаблоны файлов или каталоги.
  • —verbose : более развернутый вывод с информацией о том, какие файлы изменились, для активации перезапуска.

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

Используя эти опции, создадим команду для соответствия следующему сценарию:

  • наблюдение за каталогом server
  • указание файлов с расширением .ts
  • игнорирование файлов с суффиксом .test.ts
  • выполнение файла ( server/server.ts ) с ts-node
  • ожидание перезапуска в течение трех секунд после изменения файла

Эта команда комбинирует опции —watch , —ext , —exec , —ignore и —delay , чтобы выполнить условия для нашего сценария.

Шаг 4 — Использование конфигураций

В предыдущем примере добавление параметров конфигурации при выполнении nodemon может оказаться довольно затруднительным. Лучшее решение для проектов, требующих определенных конфигураций, — задать эти конфигурации в файле nodemon.json .

Например, здесь приведены те же конфигурации, что и в предыдущем примере командной строки, но они содержатся в файле nodemon.json :

nodemon.json

 "watch": ["server"], "ext": "ts", "ignore": ["*.test.ts"], "delay": "3", "execMap":  "ts": "ts-node" > > 

Обратите внимание, что execMap используется вместо оператора —exec . execMap позволяет задавать двоичный код, который следует использовать для определенных расширений файлов.

Если вы предпочитаете не добавлять в проект файл конфигурации nodemon.json , вы можете добавить эти конфигурации в файл package.json в ключ nodemonConfig :

package.json

 "name": "test-nodemon", "version": "1.0.0", "description": "", "nodemonConfig":  "watch": [ "server" ], "ext": "ts", "ignore": [ "*.test.ts" ], "delay": "3", "execMap":  "ts": "ts-node" > >, // . 

Когда вы внесете изменения в nodemon.json или package.json , вы сможете запускать nodemon с помощью желаемого скрипта:

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

Заключение

В этой статье мы рассмотрели использование nodemon с приложениями Node.js. Этот инструмент поможет автоматизировать процесс остановки и запуска сервера Node для просмотра изменений.

Дополнительную информацию о доступных характеристиках и ошибках при диагностике и устранении неисправностей можно найти в официальной документации.

Если вы хотите узнать больше о Node.js, на странице темы Node.js вы найдете упражнения и проекты программирования.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Как остановить 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, он следит за файлами и если, что-то изменилось, то перезапускается

Node.JS для решения задач

Материал на этой странице устарел, поэтому скрыт из оглавления сайта.

В этом разделе предлагаются задачи по теме AJAX.

Конечно же, они требуют взаимодействия с сервером. Мы будем использовать серверную часть, написанную на JavaScript, на Node.JS.

Если вы не использовали Node.JS ранее – не беспокойтесь. Здесь нашей целью является преимущественно клиентская часть, поэтому прямо сейчас изучать Node.JS не обязательно. Серверные скрипты уже готовы. Нужно только поставить Node.JS и модули, чтобы их запускать.

Установка

Для настройки окружения будет достаточно сделать два шага:

  1. Сначала установите сам сервер Node.JS. Если у вас Unix-система – рекомендуется собрать последнюю версию из исходников, а также NPM. Вы справитесь. Если Windows – посетите сайт https://nodejs.org или скачайте установщик (32 или 64-битный) с расширением .msi из https://nodejs.org/dist/latest/.
  2. Выберите директорию, в которой будете решать задачи. Запустите в ней:

npm install node-static

Проверка

    Создайте какую-нибудь поддиректорию и в ней файл server.js с таким содержимым:

var http = require('http'); var static = require('node-static'); var file = new static.Server('.'); http.createServer(function(req, res) < file.serve(req, res); >).listen(8080); console.log('Server running on port 8080');
Server running on port 8080

Нельзя запустить больше одного сервера одновременно!

При попытке запуска двух серверов (например, в разных консолях) – будет конфликт портов и ошибка.

  1. Откройте в браузере http://127.0.0.1:8080/server.js. Должно вывести код файла server.js .

Если всё работает – отлично, теперь вы готовы решать задачи.

Примеры

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

var http = require('http'); var url = require('url'); var querystring = require('querystring'); function accept(req, res) < res.writeHead(200, < 'Content-Type': 'text/plain', 'Cache-Control': 'no-cache' >); res.end("OK"); > http.createServer(accept).listen(8080);

…Будет только функция accept , или даже только её содержимое:

res.writeHead(200, < 'Content-Type': 'text/plain', 'Cache-Control': 'no-cache' >);

Основные методы

В функции accept используются два объекта:

  • req – объект запроса («request»), то есть то, что прислал клиент (обычно браузер), из него читаем данные.
  • res – объект ответа («response»), в него пишем данные в ответ клиенту.
    • вызов res.writeHead(HTTP-код, [строка статуса], ) пишет заголовки.
    • вызов res.write(txt) пишет текст в ответ.
    • вызов res.end(txt) – завершает запрос ответом.

    Демо

    Кроме просмотра кода, можно будет попробовать и скачать различные демки.

    Вот пример демо, можете попробовать нажать на кнопку – она работает.

    Если хотите посмотреть пример поближе и поиграть с ним – скачайте архив (кнопка справа-сверху в примере выше), он будет работать и на вашем Node.JS.

    Больше о Node.JS

    Больше о сервере Node.JS можно узнать в скринкасте по Node.JS.

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

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