Jak rozwiązać problem „Błąd: słuchaj EADDRINUSE: adres jest już używany”?

Jak Rozwiazac Problem Blad Sluchaj Eaddrinuse Adres Jest Juz Uzywany



Node.js to środowisko uruchomieniowe, które umożliwia wykonanie kodu napisanego w języku JavaScript na stronie internetowej lub serwerze lokalnym. Jest to środowisko jednowątkowe i ma charakter asynchroniczny. Oferuje różne moduły wbudowane i zewnętrzne, których można używać do wykonywania różnych operacji, takich jak wysyłanie żądań HTTP przez serwer. Podczas interakcji z różnymi serwerami lokalnymi istnieje ryzyko wystąpienia wielu błędów, które można rozwiązać, postępując zgodnie z określonymi przewodnikami.

W tym przewodniku wyjaśniono możliwe poprawki dotyczące „słuchaj EADDRINUSE: adres już używany”, omawiając poniższe sekcje:

Jak rozwiązać problem „Błąd: słuchaj EADDRINUSE: adres jest już używany”?

Błąd: słuchaj EADDRINUSE: adres jest już używany ” pojawia się, gdy więcej niż jedna aplikacja lub zadanie próbuje uzyskać dostęp do tego samego portu. Ten błąd może zostać zgłoszony w fazie testowania lub programowania. Na przykład w celu lepszego zrozumienia zostanie wygenerowany powyższy błąd:







konst ekspresowyObj = wymagać ( 'wyrazić' )
konst aplikacja demonstracyjna = ekspresowyObj ( )
aplikacja demonstracyjna. Dostawać ( „/” , ( wymaganie, rez ) => {
rez. json ( {
nazwa : „Artykuł Linuxhint na temat CORS” ,
język : „Node.js” ,
aplikacja : „corsAplikacja” ,
pochodzenie : „Pochodzenie krzyżowe” ,
oprogramowanie pośrednie : „CORS”
} )
} )
aplikacja demonstracyjna. Słuchać ( 8080 , ( ) => {
konsola. dziennik ( `Serwer został uruchomiony „http://localhost:8080/” ` )
} )
aplikacja demonstracyjna. Słuchać ( 8080 , ( ) => {
konsola. dziennik ( `Serwer został uruchomiony „http://localhost:8080/” ` )
} )

Powyższy fragment kodu działa w następujący sposób:



  • Najpierw zaimportuj „ wyrazić ” i zapisz jego obiekt w nowej zmiennej „ ekspresowyObj ”. Użyj tej zmiennej jako konstruktora, aby utworzyć nową aplikację ekspresową o nazwie „ aplikacja demonstracyjna ”.
  • Następnie utwórz żądanie GET za pomocą „ Dostawać() ” i ustaw stronę główną jako procedurę obsługi root, przekazując „ / ” jako pierwszy parametr. Drugi parametr to anonimowa funkcja wywołania zwrotnego, która wysyła „ JSON „dane jako odpowiedź poprzez wykorzystanie „ json() ' metoda.
  • Następnie spraw, aby aplikacja działała na tym samym numerze portu „ 8080 ' dwa razy. Dwukrotne wykonanie tego samego portu generuje wspomniany błąd.

Wygenerowane dane wyjściowe po kompilacji powyższego kodu pokazują wystąpienie błędu „Błąd: słuchaj EADDRINUSE: adres jest już używany”:







Istnieją głównie dwa rozwiązania umożliwiające rozwiązanie błędu, który wystąpił w powyższych wynikach, a mianowicie zmiana numerów portów lub zatrzymanie jednego z uruchomionych procesów. Istnieje jednak także wiele innych poprawek, które pośrednio rozwiązują problem „ Błąd: słuchaj EADDRINUSE: adres jest już używany ' błąd. Poniżej przedstawiono rozwiązania wraz z praktycznymi demonstracjami:

Rozwiązanie 1: Uruchom procesy na różnych portach

Najbardziej zalecanym rozwiązaniem wspomnianego błędu jest identyfikacja numerów portów, na których działają obie usługi, tak jak w naszym przypadku jest to „ 8080 ”. Następnie wybierz losowo jedną usługę i zmodyfikuj jej numer portu, aby usługi nasłuchiwały na hoście lokalnym, ale z różnymi numerami portów. Nasz kod po omawianej modyfikacji pokazano poniżej:



konst ekspresowyObj = wymagać ( 'wyrazić' )
konst aplikacja demonstracyjna = ekspresowyObj ( )
aplikacja demonstracyjna. Dostawać ( „/” , ( wymaganie, rez ) => {
rez. json ( {
nazwa : „Artykuł Linuxhint na temat CORS” ,
język : „Node.js” ,
aplikacja : „corsAplikacja” ,
pochodzenie : „Pochodzenie krzyżowe” ,
oprogramowanie pośrednie : „CORS”
} )
} )
aplikacja demonstracyjna. Słuchać ( 8080 , ( ) => {
konsola. dziennik ( `Serwer został uruchomiony „http://localhost:8080/” ` )
} )
aplikacja demonstracyjna. Słuchać ( 3000 , ( ) => {
konsola. dziennik ( `Serwer został uruchomiony „http://localhost:8080/” ` )
} )

Dane wyjściowe wygenerowane po wykonaniu powyższego kodu pokazują, że teraz „ Błąd: słuchaj EADDRINUSE: adres jest już używany ” problem został rozwiązany:

Rozwiązanie 2: Zatrzymanie procesów działających na tym samym porcie

Innym sposobem rozwiązania błędu „słuchaj EADDRINUSE: adres już używany” jest zatrzymanie procesów działających na określonym porcie, który jest już używany. Spowoduje to, że port będzie bezczynny, do którego programista będzie mógł uzyskać dostęp w celu wykonania określonych zadań. Proces zatrzymywania odbywa się za pomocą zewnętrznego modułu o nazwie „ port zabicia ”.

Na przykład wszystkie procesy działające na określonym numerze portu „ 8080 ” zostaną zabici przy użyciu „ port zabicia moduł. Istnieją dwa sposoby użycia modułu „kill-port” i oba podejścia opisano poniżej:

Metoda 1: Po instalacji użyj modułu „kill-port”.

port zabicia ” jest modułem zewnętrznym innej firmy i aby móc korzystać z tego modułu wewnątrz projektu node.js. Moduł ten należy najpierw pobrać, wykonując poniższe polecenie:

npm zainstaluj zabij - Port - G

Poniższy rysunek przedstawia zakończenie instalacji „ port zabicia ' zmienny:

Po instalacji użytkownik może wyłączyć usługi dla wymaganego numeru portu. W naszym przypadku usługi numeru portu „ 8080 ” zostaną zabici za pomocą poniższego polecenia:

zabić - Port -- Port 8080

Poniższe dane wyjściowe potwierdzają, że wszystkie usługi dla portu „ 8080 ' zostało zabitych:

Metoda 2: Użyj modułu „kill-port” bez instalacji

port zabicia ” można używać bez przechodzenia przez proces instalacji, wykorzystując „ np „przewoźnik pakietów”. Na przykład „ port zabicia ” jest używany do zabicia określonych dwóch portów za pomocą polecenia pakietu „npx” podanego poniżej:

npx zabić - Port 8080 9000

Poniższe dane wyjściowe pokazują, że usługi dla określonych portów „ 9000 ' I ' 8080 ' zostało zabitych:

Dodatkowa wskazówka: Dezinstalacja modułu „kill-port”.

Aby odinstalować „ port zabicia ” globalnie z systemu wykonaj poniższe polecenie:

npm odinstaluj zabij - Port - G

Rozwiązanie 3: Zakończ usługi Node.js w systemie Windows

Jeśli komunikat „Błąd: słuchaj EADDRINUSE: adres już używany” nadal występuje, zabij wszystkie uruchomione „ węzeł.js ” usługi przy użyciu podejścia GUI lub CLI.

Korzystanie z podejścia CLI

Wciśnij ' Okno ”, aby otworzyć pasek wyszukiwania i wpisać „ CMD ” w polu wyszukiwania, z wygenerowanych wyników. Następnie wybierz opcję „ Wiersz polecenia ” i naciśnij przycisk „ Uruchom jako administrator ' przycisk:

Po wybraniu tej opcji pojawi się nowe okno Wiersza Sterowania. Aby zakończyć aktualnie działające usługi „node.js” w tle, wykonaj poniższe polecenie:

Zabójstwo zadaniowe / F / Węzeł komunikatora. ex

Wygenerowane dane wyjściowe pokazują, że usługi „node.js” zostały zakończone:

Korzystanie z podejścia GUI

Aby wyłączyć działające usługi node.js z systemu, otwórz „ Menadżer zadań ”, naciskając przycisk „ Ctrl + Shift + Esc natychmiast klucze. Po otwarciu „Menedżera zadań” przejdź do „ Detale ”, wybierz opcję „ węzeł.exe ” i naciśnij przycisk „ Zakończ zadanie ” znajdujący się w prawym dolnym rogu, jak pokazano poniżej:

Chodzi o rozwiązanie „Błądu: słuchaj EADDRINUSE: adres jest już używany” w Node.js.

Wniosek

„Błąd: nasłuchiwanie EADDRINUSE: adres już używany” pojawia się, gdy więcej niż jedna usługa próbuje jednocześnie korzystać z jednego portu. Aby rozwiązać ten problem, użytkownik powinien spróbować użyć innego numeru portu lub zakończyć usługi, które już działają na określonym numerze portu, używając przycisku „ port zabicia moduł. Jeśli błąd nadal nie został rozwiązany, zabij wszystkie uruchomione „ węzeł.js ” z menedżera zadań i uruchom ponownie aplikację. W tym przewodniku przedstawiono możliwe rozwiązania problemu „Błąd: słuchaj EADDRINUSE: adres jest już używany”.