Это означает, что вы пытаетесь манипулировать тем, что имеет ссылку, но еще не инициализировано. Первое, что нужно сделать, это проверить каждый созданный экземпляр. Используйте контрольные точки, часы, проверяйте свои значения varibale. Следить за трассировкой стека и искать точные строки и столбцы, которые создают проблему
Это означает, что используется адрес, который вы пытаетесь связать с сервером. Попробуйте другой порт или закройте программу, используя этот порт.
вы можете изменить свой порт в app.js или в файле конфигурации проекта ur.
по умолчанию («порт», 80)
и чтобы увидеть, используется ли порт 80
netstat -antp | grep 80
netstat -antp | grep node
вы можете посмотреть, запущен ли процесс узла или нет.
ps -ef | grep node
, и если вы найдете его уже запущенный, вы можете убить его, используя
killall node
просто убить узел как узел pkill -9 в терминале ubuntu, который запустит узел
У меня есть красный узел, установленный на моем Mac и мой малиновый пи. Если бы точно такая же проблема и выполнение «killall» не помогло. Как только я закрыл Малиновый Пи и перезапустил свой компьютер, он работал нормально.
предположим, что ваш сервер работает на port 3000
lsof -i tcp:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 11716 arun 11u IPv6 159175 0t0 TCP *:3000 (LISTEN)
, после этого используйте kill -9 <pid>
в приведенном выше случае sudo kill -9 11716
Вы получаете ошибку EADDRINUSE
, потому что порт, который ваше приложение хочет использовать, занят другим процессом. Чтобы освободить этот порт, вам нужно завершить процесс занятия.
Поскольку вы находитесь в Windows, вы можете завершить процесс с помощью командной строки (cmd
). С помощью cmd
вы можете обнаружить идентификатор процесса (PID) приложения блокировки. Вам понадобится PID, чтобы прервать / убить процесс.
Вот пошаговое руководство ...
netstat
перечислит все процессы, выполняемые на указанном порту. В последнем столбце результатов netstat
вы можете увидеть PID
s (в этом примере PID - «8308»). Вы можете узнать больше об определенном PID
, выполнив следующую команду: tasklist / fi "pid eq 8308" PID
(в этом примере PID - «8308»): taskkill / pid 8308 / f Снимок экрана
Возможно, вы попытались запустить команду запуска npm в двух разных вкладках. Вы не можете запустить npm, когда она уже запущена в какой-либо вкладке. Посмотрите один раз.
Я создал 2 сервера, прослушивая один и тот же порт 8081, работая от одного и того же кода, в то время как обучение
1-й сервер shud сработал с 2-м созданием сервера с EADDRINUSE
node.js задержка обратного вызова может быть причиной того, что ни работало, ни возникло 2-е создание сервера, а программа вышла, поэтому 1-й сервер также закрыт
2 подсказкой сервера, я получил от: Как исправить ошибку: слушать EADDRINUSE при использовании nodejs?
используйте команду ниже, чтобы убить процесс, запущенный на определенном порту - 3000 в этом примере ниже
kill -9 $(lsof -t -i:3000)
Одним из возможных решений, которые работали для меня, было просто закрыть окно в браузере, где у меня был соответствующий скрипт http: // localhost: 3000 / .
Run:
ps -ax | grep node
Вы получите что-то вроде:
60778 ?? 0:00.62 /usr/local/bin/node abc.js
Затем выполните:
kill -9 60778
ps -ef | grep node find app.js, kill pid app.js
Когда вы получите сообщение об ошибке Ошибка: прослушайте EADDRINUSE,
Попробуйте запустить следующие команды оболочки:
netstat -a -o | grep 8080
taskkill /F /PID 6204
I grep
ed для 8080, потому что я знаю свой сервер запущен на порту 8080. (static
сообщает мне, когда я начинаю его: «обслуживать». на http://127.0.0.1:8080 '.) Возможно, вам придется искать другую порт.
Для всех, кто пробовал все вышеперечисленное, но все еще не может найти процесс румян, попробуйте их все снова, но убедитесь, что вы добавили «sudo» перед командами.
Ошибка: прослушайте EADDRINUSE, чтобы решить ее в Ubuntu, запустите в терминале netstat -nptl
, и после этого kill -9 {process-number}
эта команда предназначена для уничтожения процесса узла, и теперь вы можете попробовать снова запустить команду node.js узла
Ex
прослушать EADDRINUSE ::: 8080
netstat -nptl
tcp6 0 0 ::: 9000 ::: * LISTEN 9660 / java tcp6 0 0 ::: 5800 ::: * LISTEN - tcp6 0 0 ::: 5900 ::: * LISTEN - tcp6 0 0 ::: 8080 ::: * LISTEN 10401 / node tcp6 0 0 ::: 20080 ::: * LISTEN 9660 / java tcp6 0 0 ::: 80 ::: * LISTEN - tcp6 0 0 ::: 22 ::: * LISTEN - tcp6 0 0 ::: 10137 ::: * LISTEN 9660 / java
kill -9 10401
В окне выполните следующую команду:
taskkill /F /PID 1952
Если вам больше нравится UI, найдите процесс Node.js в диспетчере задач Windows и убейте его.
Когда вы получите сообщение об ошибке
Ошибка: прослушайте EADDRINUSE
blockquote>Откройте командную строку и введите следующие инструкции:
netstat -a -o | grep 8080 taskkill /F /PID** <*ur Process ID no*>
после этого перезагрузите интерфейс разговора по телефону.
Если вы хотите узнать, какая телефонная задержка идентификатора процесса открыта, откройте TASK MANAGER и посмотрите PID заголовка столбца и найдите номер PID
Следующая команда даст вам список запущенных процессов узлов.
ps | grep node
Чтобы освободить этот порт, остановите процесс, используя следующие.
kill <processId>
В Linux (по крайней мере, для производных Ubuntu)
killall node
проще, чем эта форма.
ps | grep <something>
kill <somepid>
Ни один из них не будет работать, если у вас есть ребенок-сирота, держащий порт. Вместо этого сделайте следующее:
netstat -punta | grep <port>
Если порт удерживается, вы увидите что-то вроде этого:
tcp 0 0.0.0.0:<port> 0.0.0.* LISTEN <pid>/<parent>
Теперь убить pid:
kill -9 <pid>