Закрытие нескольких портов с помощью экспресс-приложения - PullRequest
1 голос
/ 23 марта 2019

Я запускаю несколько экземпляров сервера приложения на другом порту, используя «npm run node_1 & npm run node_2 &», это успешно запускает мой локальный хост на 3001 и 3002. Но когда я пытаюсь закрыть его, используя CTRL + C, он закрывает только первый определенный порт, а другой все еще остается в использовании, выдавая ошибку ниже, когда я запускаю его снова

[nodemon] начиная с node ./networkNode.js 3002 http://localhost:3002 events.js: 173 бросить эр; // необработанное событие error ^

Ошибка: прослушайте EADDRINUSE: адрес уже используется ::: 3002

My package.json :

"scripts": {
    "node_1": "nodemon --watch . -e js ./networkNode.js 3001 
           http://localhost:3001",
    "node_2": "nodemon --watch . -e js ./networkNode.js 3002 
           http://localhost:3002",
  },

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Когда вы пытаетесь запустить несколько процессов, используя &, только 1 процесс подключается к терминалу AFAIK, а когда вы нажимаете ctrl + c , только подключенный процесс получает событие сигнала SIGINT.Вам бы больше повезло, если бы вы запустили этот процесс с помощью диспетчера процессов, например pm2 , или если вы не хотите ничего интенсивно использовать run-all package .

0 голосов
/ 23 марта 2019

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

Что может быть проще, так это использовать пакет NPM concurrently для запуска этих процессов. Убийство concurrently с помощью Ctrl+C уничтожит все запущенные задания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...