V tejto príručke sú vysvetlené možné opravy pre „počúvajte EADDRINUSE: adresa sa už používa“ tým, že zahŕňa nižšie uvedené časti:
- Ako vyriešiť „Chyba: počúvajte EADDRINUSE: adresa sa už používa“?
- Riešenie 1: Spustite procesy na rôznych portoch
- Riešenie 2: Zastavenie procesov spustených na rovnakom porte
- Metóda 1: Po inštalácii použite modul „kill-port“.
- Metóda 2: Použite modul „kill-port“ bez inštalácie
- Bonusový tip: Odinštalovanie modulu „kill-port“.
- Riešenie 3: Ukončite služby Node.js v systéme Windows
- Používanie prístupu CLI
- Používanie prístupu GUI
- Záver
Ako vyriešiť „Chyba: počúvajte EADDRINUSE: adresa sa už používa“?
' Chyba: počúvajte EADDRINUSE: adresa sa už používa “ vzniká, keď sa viac ako jedna aplikácia alebo úloha pokúša o prístup k rovnakému portu. Táto chyba sa môže objaviť počas testovacej alebo vývojovej fázy. Pre lepšie pochopenie sa napríklad vygeneruje vyššie uvedená chyba:
konšt expressObj = vyžadovať ( 'expresné' )
konšt demoApp = expressObj ( )
demoApp. dostať ( '/' , ( req, req ) => {
res. json ( {
názov : 'Linuxhint článok o CORS' ,
Jazyk : 'Node.js' ,
aplikácie : 'corsApp' ,
pôvodu : 'Cross Origin' ,
middleware : 'CORS'
} )
} )
demoApp. počúvaj ( 8080 , ( ) => {
konzola. log ( `Server bol spustený 'http://localhost:8080/' ` )
} )
demoApp. počúvaj ( 8080 , ( ) => {
konzola. log ( `Server bol spustený 'http://localhost:8080/' ` )
} )
Vyššie uvedený útržok kódu funguje takto:
- Najprv importujte súbor „ expresné “ modul a uložte jeho objekt do novej premennej “ expressObj “. Použite túto premennú ako konštruktor na vytvorenie novej expresnej aplikácie s názvom „ demoApp “.
- Ďalej vytvorte požiadavku GET pomocou „ dostať () “ a nastavte domovskú stránku ako root handler odovzdaním “ / “ ako prvý parameter. Druhým parametrom je anonymná funkcia spätného volania, ktorá odosiela „ JSON 'údaje ako odpoveď pri použití ' json() “.
- Potom nechajte túto aplikáciu spustiť cez rovnaké číslo portu „ 8080 ' dvakrát. Toto spustenie toho istého portu dvakrát generuje spomínanú chybu.
Vygenerovaný výstup po kompilácii vyššie uvedeného kódu ukazuje výskyt chyby „Chyba: počúvajte EADDRINUSE: adresa sa už používa“:
Existujú hlavne dve riešenia na vyriešenie chyby, ktorá sa vyskytla vo vyššie uvedenom výstupe, a to zmena čísla portov alebo zastavenie jedného zo spustených procesov. Existuje však aj niekoľko ďalších opráv, ktoré nepriamo riešia problém „ Chyba: počúvajte EADDRINUSE: adresa sa už používa ' chyba. Tieto riešenia spolu s praktickými ukážkami sú uvedené nižšie:
Riešenie 1: Spustite procesy na rôznych portoch
Najviac odporúčaným riešením uvedenej chyby je identifikovať čísla portov, na ktorých bežia obe služby, ako v našom prípade je to “ 8080 “. Potom náhodne vyberte jednu službu a upravte jej číslo portu, aby služby počúvali na localhoste, ale s rôznymi číslami portov. Náš kód po diskutovanej úprave je zobrazený nižšie:
konšt expressObj = vyžadovať ( 'expresné' )
konšt demoApp = expressObj ( )
demoApp. dostať ( '/' , ( req, req ) => {
res. json ( {
názov : 'Linuxhint článok o CORS' ,
Jazyk : 'Node.js' ,
aplikácie : 'corsApp' ,
pôvodu : 'Cross Origin' ,
middleware : 'CORS'
} )
} )
demoApp. počúvaj ( 8080 , ( ) => {
konzola. log ( `Server bol spustený 'http://localhost:8080/' ` )
} )
demoApp. počúvaj ( 3000 , ( ) => {
konzola. log ( `Server bol spustený 'http://localhost:8080/' ` )
} )
Výstup vygenerovaný po vykonaní vyššie uvedeného kódu ukazuje, že teraz „ Chyba: počúvajte EADDRINUSE: adresa sa už používa “ problém je vyriešený:
Riešenie 2: Zastavenie procesov spustených na rovnakom porte
Ďalším spôsobom, ako vyriešiť chybu „počúvajte EADDRINUSE: adresa sa už používa“, je zastavenie procesov spustených na konkrétnom porte, ktorý sa už používa. Toto spôsobí, že port bude nečinný, ku ktorému môže vývojár pristupovať na vykonanie špecifikovaných úloh. Tento proces zastavenia sa vykonáva pomocou externého modulu s názvom „ kill-port “.
Napríklad všetky procesy, ktoré bežia na zadanom čísle portu “ 8080 “budú zabití pomocou “ kill-port “. Existujú dva spôsoby použitia modulu „kill-port“ a oba tieto prístupy sú uvedené nižšie:
Metóda 1: Po inštalácii použite modul „kill-port“.
' kill-port ” modul je externý modul tretej strany a na použitie tohto modulu v projekte node.js. Tento modul je potrebné najprv stiahnuť vykonaním nižšie uvedeného príkazu:
npm install kill - prístav - gObrázok nižšie zobrazuje dokončenie inštalácie pre „ kill-port ” premenná:
Po inštalácii môže používateľ ukončiť služby pre požadované číslo portu. V našom prípade služby čísla portu „ 8080 ” budú zabití pomocou nižšie uvedeného príkazu:
zabiť - prístav -- prístav 8080Nižšie uvedený výstup potvrdzuje, že všetky služby pre port „ 8080 “ boli zabití:
Metóda 2: Použite modul „kill-port“ bez inštalácie
' kill-port “ modul je možné použiť bez toho, aby ste museli prejsť procesom inštalácie pomocou „ npx ”bežec balíka. Napríklad „ kill-port ” modul sa používa na zabitie špecifikovaných dvoch portov pomocou príkazu „npx“ package runner uvedeného nižšie:
npx zabiť - prístav 8080 9000Nižšie uvedený výstup ukazuje, že služby pre špecifikované porty “ 9000 “ a „ 8080 “ boli zabití:
Bonusový tip: Odinštalovanie modulu „kill-port“.
Ak chcete odinštalovať „ kill-port ” modul globálne zo systému vykonajte nižšie uvedený príkaz:
npm uninstall kill - prístav - g
Riešenie 3: Ukončite služby Node.js v systéme Windows
Ak „Chyba: počúvajte EADDRINUSE: adresa sa už používa“ stále pretrváva, ukončite všetky spustené „ node.js ” služby využívajúce prístup GUI alebo CLI.
Používanie prístupu CLI
Stlačte tlačidlo „ okno “, otvorte panel vyhľadávania a zadajte „ CMD “ vo vyhľadávacom poli z vygenerovaných výsledkov. Potom vyberte „ Príkazový riadok “ a stlačte tlačidlo “ Spustiť ako správca tlačidlo ”:
Výberom možnosti sa zobrazí nové okno ovládacieho príkazu, aby ste zabili aktuálne spustené služby „node.js“ na pozadí, vykonajte príkaz uvedený nižšie:
taskkill / F / IM uzol. exeVygenerovaný výstup ukazuje, že služby „node.js“ boli ukončené:
Používanie prístupu GUI
Ak chcete ukončiť spustené služby node.js zo systému, otvorte súbor „ Správca úloh “ stlačením tlačidla “ Ctrl + Shift + Esc “, okamžite. Po otvorení „Správcu úloh“ prejdite na „ Podrobnosti “, vyberte „ node.exe “ a stlačte “ Ukončiť úlohu ” tlačidlo nachádzajúce sa v pravom dolnom smere, ako je znázornené nižšie:
To je všetko o vyriešení chyby „Chyba: počúvajte EADDRINUSE: adresa sa už používa“ v Node.js.
Záver
„Chyba: počúvajte EADDRINUSE: adresa sa už používa“ sa objaví, keď sa viac ako jedna služba pokúša použiť jeden port súčasne. Ak to chcete vyriešiť, používateľ by sa mal pokúsiť použiť iné číslo portu alebo zabiť služby, ktoré už bežia na zadanom čísle portu pomocou „ kill-port “. Ak chyba stále nie je vyriešená, ukončite všetky spustené „ node.js ” zo správcu úloh a reštartujte aplikáciu. Táto príručka ilustruje možné riešenia na vyriešenie problému „Chyba: počúvajte EADDRINUSE: adresa sa už používa“.