Jak vyřešit „Chyba: poslouchejte EADDRINUSE: adresa se již používá“?

Jak Vyresit Chyba Poslouchejte Eaddrinuse Adresa Se Jiz Pouziva



Node.js je běhové prostředí, které umožňuje spuštění kódu napsaného v jazyce JavaScript přes webovou stránku nebo místní server. Je to jednovláknové prostředí a má asynchronní povahu. Nabízí různé vestavěné a externí moduly, které lze použít k provádění různých operací, jako je odesílání požadavků HTTP přes server. Při interakci s různými místními servery existuje možnost získat více chyb, které jsou vyřešeny podle konkrétních pokynů.

Tato příručka vysvětluje možné opravy pro „poslouchejte EADDRINUSE: adresa se již používá“ tím, že pokryje následující části:

Jak vyřešit „Chyba: poslouchejte EADDRINUSE: adresa se již používá“?

' Chyba: poslouchejte EADDRINUSE: adresa se již používá ” vzniká, když se více než jedna aplikace nebo úloha pokouší o přístup ke stejnému portu. Tato chyba se může objevit ve fázi testování nebo vývoje. Pro lepší pochopení se například vygeneruje výše uvedená chyba:







konst expressObj = vyžadovat ( 'vyjádřit' )
konst demoApp = expressObj ( )
demoApp. dostat ( '/' , ( req, req ) => {
res. json ( {
název : 'Linuxhint článek na CORS' ,
Jazyk : 'Node.js' ,
aplikace : 'corsApp' ,
původ : 'Cross Origin' ,
middleware : 'CORS'
} )
} )
demoApp. poslouchat ( 8080 , ( ) => {
řídicí panel. log ( `Server byl spuštěn 'http://localhost:8080/' ` )
} )
demoApp. poslouchat ( 8080 , ( ) => {
řídicí panel. log ( `Server byl spuštěn 'http://localhost:8080/' ` )
} )

Výše uvedený fragment kódu funguje takto:



  • Nejprve importujte „ vyjádřit “ modul a uložte jeho objekt do nové proměnné “ expressObj “. Použijte tuto proměnnou jako konstruktor k vytvoření nové expresní aplikace s názvem „ demoApp “.
  • Dále vytvořte požadavek GET pomocí „ dostat() ” a nastavte domovskou stránku jako kořenový obslužný program předáním “ / ” jako první parametr. Druhým parametrem je anonymní funkce zpětného volání, která odesílá „ JSON “ data jako odezva při využití “ json() “ metoda.
  • Poté nechte tuto aplikaci spustit přes stejné číslo portu „ 8080 ' dvakrát. Toto provedení stejného portu dvakrát generuje zmíněnou chybu.

Vygenerovaný výstup po kompilaci výše uvedeného kódu ukazuje výskyt chyby „Chyba: poslouchejte EADDRINUSE: adresa se již používá“:







Existují hlavně dvě řešení, jak vyřešit chybu, která se vyskytla ve výše uvedeném výstupu, a to změnit čísla portů nebo zastavit jeden z běžících procesů. Existuje však také několik dalších oprav, které nepřímo řeší problém „ Chyba: poslouchejte EADDRINUSE: adresa se již používá “chyba. Tato řešení spolu s praktickými ukázkami jsou uvedeny níže:

Řešení 1: Spusťte procesy na různých portech

Nejdoporučovanějším řešením uvedené chyby je identifikace čísel portů, na kterých obě služby běží, jako v našem případě je to „ 8080 “. Poté náhodně vyberte jednu službu a upravte její číslo portu, aby služby naslouchaly na localhost, ale s různými čísly portů. Náš kód po diskutované úpravě je zobrazen níže:



konst expressObj = vyžadovat ( 'vyjádřit' )
konst demoApp = expressObj ( )
demoApp. dostat ( '/' , ( req, req ) => {
res. json ( {
název : 'Linuxhint článek na CORS' ,
Jazyk : 'Node.js' ,
aplikace : 'corsApp' ,
původ : 'Cross Origin' ,
middleware : 'CORS'
} )
} )
demoApp. poslouchat ( 8080 , ( ) => {
řídicí panel. log ( `Server byl spuštěn 'http://localhost:8080/' ` )
} )
demoApp. poslouchat ( 3000 , ( ) => {
řídicí panel. log ( `Server byl spuštěn 'http://localhost:8080/' ` )
} )

Výstup vygenerovaný po provedení výše uvedeného kódu ukazuje, že nyní „ Chyba: poslouchejte EADDRINUSE: adresa se již používá “ problém je vyřešen:

Řešení 2: Zastavení procesů běžících na stejném portu

Dalším způsobem, jak vyřešit chybu „poslouchejte EADDRINUSE: adresa se již používá“, je zastavení procesů běžících na konkrétním portu, který se již používá. Tím se port stane nečinným, ke kterému má vývojář přístup, aby mohl provádět zadané úkoly. Tento proces zastavení se provádí pomocí externího modulu s názvem „ kill-port “.

Například všechny procesy, které běží na zadaném čísle portu “ 8080 „budou zabiti pomocí „ kill-port “modul. Existují dva způsoby použití modulu „kill-port“ a oba tyto přístupy jsou uvedeny níže:

Metoda 1: Po instalaci použijte modul „kill-port“.

' kill-port ” je externí modul třetí strany a za účelem použití tohoto modulu v projektu node.js. Tento modul je třeba nejprve stáhnout provedením níže uvedeného příkazu:

npm install kill - přístav - G

Níže uvedený obrázek ukazuje dokončení instalace pro „ kill-port 'proměnná:

Po instalaci může uživatel ukončit služby pro požadované číslo portu. V našem případě služby čísla portu „ 8080 ” budou zabiti níže uvedeným příkazem:

zabít - přístav -- přístav 8080

Níže uvedený výstup potvrzuje, že všechny služby pro port „ 8080 “ byli zabiti:

Metoda 2: Použijte modul „kill-port“ bez instalace

' kill-port “ modul lze použít bez nutnosti procházet instalačním procesem pomocí „ npx “běžec balíku. Například „ kill-port ” modul se používá k zabití specifikovaných dvou portů pomocí příkazu „npx“ package runner uvedeného níže:

npx zabít - přístav 8080 9000

Níže uvedený výstup ukazuje, že služby pro zadané porty „ 9000 ' a ' 8080 “ byli zabiti:

Bonusový tip: Odinstalace modulu „kill-port“.

Chcete-li odinstalovat „ kill-port ” modul globálně ze systému spusťte níže uvedený příkaz:

npm uninstall kill - přístav - G

Řešení 3: Ukončete služby Node.js v systému Windows

Pokud stále přetrvává „Chyba: poslouchejte EADDRINUSE: adresa se již používá“, ukončete všechny spuštěné „ node.js ” služby buď pomocí přístupu GUI nebo CLI.

Použití CLI Approach

Zmáčkni ' Okno “, otevřete vyhledávací lištu a zadejte „ CMD ” ve vyhledávacím poli z vygenerovaných výsledků. Poté vyberte „ Příkazový řádek ” a stiskněte tlačítko “ Spustit jako administrátor ' knoflík:

Výběrem této možnosti se objeví nové okno Control Prompt, chcete-li zabít aktuálně spuštěné služby „node.js“ na pozadí, proveďte níže uvedený příkaz:

taskkill / F / IM uzel. exe

Vygenerovaný výstup ukazuje, že služby „node.js“ byly ukončeny:

Použití přístupu GUI

Chcete-li ze systému ukončit spuštěné služby node.js, otevřete soubor „ Správce úloh “ klepnutím na „ Ctrl + Shift + Esc “ okamžitě. Po otevření „Správce úloh“ přejděte na „ Podrobnosti “, vyberte „ node.exe “ a stiskněte “ Ukončit úlohu ” tlačítko umístěné vpravo dole, jak je znázorněno níže:

To je vše o vyřešení chyby „Chyba: poslouchejte EADDRINUSE: adresa se již používá“ v Node.js.

Závěr

„Chyba: poslouchejte EADDRINUSE: adresa se již používá“ se objeví, když se více než jedna služba pokouší použít jeden port současně. Chcete-li to vyřešit, uživatel by se měl pokusit použít jiné číslo portu nebo zabít služby, které již běží na zadaném čísle portu pomocí „ kill-port “modul. Pokud chyba stále není vyřešena, ukončete všechny spuštěné ' node.js ” ze správce úloh a restartujte aplikaci. Tato příručka ilustruje možná řešení k vyřešení problému „Chyba: poslouchejte EADDRINUSE: adresa se již používá“.