Ako vyriešiť „Chyba: počúvajte EADDRINUSE: adresa sa už používa“?

Ako Vyriesit Chyba Pocuvajte Eaddrinuse Adresa Sa Uz Pouziva



Node.js je runtime prostredie, ktoré umožňuje spustiť kód napísaný v jazyku JavaScript cez webovú stránku alebo lokálny server. Je to jednovláknové prostredie a má asynchrónny charakter. Ponúka rôzne vstavané a externé moduly, ktoré možno použiť na vykonávanie rôznych operácií, ako je odosielanie požiadaviek HTTP cez server. Pri interakcii s rôznymi miestnymi servermi existuje možnosť získať viacero chýb, ktoré sú vyriešené podľa konkrétnych pokynov.

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“?

' 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 - g

Obrá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 8080

Nižš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 9000

Nižš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. exe

Vygenerovaný 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“.