Ошибка: связать EADDRINUSE ноль: 80 в node.js - PullRequest
0 голосов
/ 04 января 2019

когда я запускаю программу с запуском npm, появляется:

Error: bind EADDRINUSE null:80
    at Object.exports._errnoException (util.js:896:11)
    at exports._exceptionWithHostPort (util.js:919:20)
    at cb (net.js:1311:16)
    at rr (cluster.js:620:14)
    at Worker.<anonymous> (cluster.js:590:9)
    at process.<anonymous> (cluster.js:750:8)
    at emitTwo (events.js:111:20)
    at process.emit (events.js:191:7)
    at handleMessage (internal/child_process.js:718:10)
    at Pipe.channel.onread (internal/child_process.js:444:11)
CLUSTER: Worker 177 disconnected from the cluster.
CLUSTER: Worker 177 died with exit code 1 (null)
CLUSTER: Worker 181 started
events.js:160
      throw er; // Unhandled 'error' event

если изменить порт с 80 на 8080, программа выполняется, но не подключается к api.localhost: 3000

Ответы [ 2 ]

0 голосов
/ 04 января 2019

EADDRINUSE означает " E rror ADD ress уже IN USE "

Таким образом, у вас, вероятно, есть другой процесс, прослушивающий порт 80

В Linux вы можете просмотреть список используемых портов с помощью команды netstat -a | grep LISTENING | grep 80

0 голосов
/ 04 января 2019

Как привилегированный пользователь, вы должны иметь возможность перечислять процессы, ссылающиеся на TCP-порт 80, используя:

netstat -plant | grep LISTENING | grep :80

В правом столбце вы должны найти имя процесса и соответствующий PID, который будет указывать, кто прослушивает этот порт.

Используя систему на основе debian или el7, в настоящее время обычно требуется установить пакет net-tools с командой netstat.

Как предполагает Грегори NEUT, возможно, вам не хватает привязки привилегий на: 80. Хотя AFAIR, в этих случаях вы должны получить ошибку EACCESS. Принимая во внимание, что EADDRESSINUSE будет означать, что другое приложение уже прослушивает TCP:80. Это может быть даже предыдущая копия вашего приложения, работающая в фоновом режиме.

...