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á“?
- Řešení 1: Spusťte procesy na různých portech
- Řešení 2: Zastavení procesů běžících na stejném portu
- Metoda 1: Po instalaci použijte modul „kill-port“.
- Metoda 2: Použijte modul „kill-port“ bez instalace
- Bonusový tip: Odinstalace modulu „kill-port“.
- Řešení 3: Ukončete služby Node.js v systému Windows
- Použití CLI Approach
- Použití přístupu GUI
- Závěr
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 - GNíž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 8080Níž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 9000Níž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. exeVygenerovaný 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á“.