Cum se rezolvă „Eroarea: ascultați EADDRINUSE: adresa deja utilizată”?

Cum Se Rezolva Eroarea Ascultati Eaddrinuse Adresa Deja Utilizata



Node.js este un mediu de rulare care permite executarea codului scris în limbajul JavaScript pe pagina web sau serverul local. Este un mediu cu un singur thread și are o natură asincronă. Oferă diverse module încorporate și externe care pot fi utilizate pentru a efectua diverse operațiuni, cum ar fi trimiterea de solicitări HTTP pe server. În timpul interacțiunii cu diverse servere locale, există șansa de a obține mai multe erori care sunt rezolvate urmând ghiduri specifice.

Acest ghid explică posibilele remedieri pentru „ascultați EADDRINUSE: adresa deja utilizată”, acoperind secțiunile de mai jos:

Cum se rezolvă „Eroarea: ascultați EADDRINUSE: adresa deja utilizată”?

Eroare: ascultați EADDRINUSE: adresa deja utilizată ” apare atunci când mai multe aplicații sau sarcini încearcă să acceseze același port. Această eroare poate fi ridicată în timpul fazelor de testare sau dezvoltare. De exemplu, eroarea menționată mai sus va fi generată pentru o mai bună înțelegere:







const expresObj = cere ( 'expres' )
const demoApp = expresObj ( )
demoApp. obține ( '/' , ( cerere, res ) => {
res. json ( {
Nume : „Articol Linuxhint despre CORS” ,
limba : „Node.js” ,
aplicarea : „corsApp” ,
origine : „Origine încrucișată” ,
middleware : „CORS”
} )
} )
demoApp. asculta ( 8080 , ( ) => {
consolă. Buturuga ( `Serverul a pornit „http://localhost:8080/” ` )
} )
demoApp. asculta ( 8080 , ( ) => {
consolă. Buturuga ( `Serverul a pornit „http://localhost:8080/” ` )
} )

Fragmentul de cod de mai sus funcționează astfel:



  • Mai întâi, importați „ expres ” și stocați obiectul său într-o nouă variabilă ” expresObj ”. Utilizați această variabilă ca constructor pentru a crea o nouă aplicație expres numită „ demoApp ”.
  • Apoi, creați o solicitare GET utilizând „ obține() ” și setați pagina de pornire ca handler rădăcină prin trecerea „ / ” ca prim parametru. Al doilea parametru este o funcție anonimă de apel invers care trimite „ JSON ” date ca răspuns prin utilizarea „ json() ” metoda.
  • După aceea, faceți ca aplicația să se execute peste același număr de port de „ 8080 ' de două ori. Această execuție a aceluiași port de două ori generează eroarea menționată.

Ieșirea generată după compilarea codului de mai sus arată apariția unei erori „Eroare: ascultați EADDRINUSE: adresa deja în uz”:







Există în principal două soluții pentru a rezolva eroarea care a apărut în rezultatul de mai sus și anume schimbarea numerelor de port sau oprirea unuia dintre procesele care rulează. Dar există și alte mai multe remedieri care rezolvă indirect „ Eroare: ascultați EADDRINUSE: adresa deja utilizată ” eroare. Aceste soluții împreună cu demonstrații practice sunt prezentate mai jos:

Soluția 1: rulați procese pe diferite porturi

Cea mai recomandată soluție pentru eroarea menționată este identificarea numerelor de port pe care rulează ambele servicii, așa cum în cazul nostru este „ 8080 ”. Apoi, alegeți un serviciu la întâmplare și modificați-i numărul portului pentru a face ca serviciile să asculte pe localhost, dar cu numere de port diferite. Codul nostru după modificarea discutată este prezentat mai jos:



const expresObj = cere ( 'expres' )
const demoApp = expresObj ( )
demoApp. obține ( '/' , ( cerere, res ) => {
res. json ( {
Nume : „Articol Linuxhint despre CORS” ,
limba : „Node.js” ,
aplicarea : „corsApp” ,
origine : „Origine încrucișată” ,
middleware : „CORS”
} )
} )
demoApp. asculta ( 8080 , ( ) => {
consolă. Buturuga ( `Serverul a pornit „http://localhost:8080/” ` )
} )
demoApp. asculta ( 3000 , ( ) => {
consolă. Buturuga ( `Serverul a pornit „http://localhost:8080/” ` )
} )

Rezultatul generat după executarea codului de mai sus arată că acum „ Eroare: ascultați EADDRINUSE: adresa deja utilizată ” problema este rezolvată:

Soluția 2: Oprirea proceselor care rulează pe același port

O altă modalitate de a rezolva eroarea „ascultă EADDRINUSE: adresa deja în uz” este oprirea proceselor care rulează pe portul specific care este deja în uz. Acest lucru va face portul inactiv, care poate fi accesat de dezvoltator pentru a efectua sarcini specificate. Acest proces de oprire se face cu ajutorul unui modul extern numit „ kill-port ”.

De exemplu, toate procesele care rulează pe numărul de port specificat „ 8080 ” vor fi uciși folosind „ kill-port ” modulul. Există două moduri de a utiliza modulul „kill-port” și ambele abordări sunt prezentate mai jos:

Metoda 1: Utilizați modulul „kill-port” după instalare

kill-port ” este un modul extern terță parte și pentru a utiliza acest modul în interiorul proiectului node.js. Acest modul trebuie să fie descărcat mai întâi prin executarea comenzii de mai jos:

npm install kill - port - g

Figura de mai jos arată finalizarea instalării pentru „ kill-port ' variabil:

După instalare, utilizatorul poate opri serviciile pentru numărul de port necesar. În cazul nostru, serviciile de număr de port „ 8080 ” vor fi ucise prin comanda menționată mai jos:

ucide - port -- port 8080

Rezultatul de mai jos confirmă că toate serviciile pentru portul „ 8080 ” au fost uciși:

Metoda 2: Folosiți modulul „kill-port” fără instalare

kill-port ” poate fi utilizat fără a trece prin procesul de instalare prin utilizarea unui “ npx ” alergător de pachete. De exemplu, „ kill-port Modulul ” este folosit pentru a ucide două porturi specificate folosind comanda de rulare a pachetului „npx” menționată mai jos:

npx ucide - port 8080 9000

Rezultatul de mai jos arată că serviciile pentru porturile specificate „ 9000 ' și ' 8080 ” au fost uciși:

Sfat bonus: dezinstalarea modulului „kill-port”.

Pentru a dezinstala „ kill-port ” modulul global din sistem executați comanda menționată mai jos:

npm uninstall kill - port - g

Soluția 3: Terminați serviciile Node.js pe Windows

Dacă „Eroarea: ascultați EADDRINUSE: adresa deja în uz” persistă, atunci omorâți-le pe toate care rulează „ node.js ” servicii fie folosind abordarea GUI sau CLI.

Folosind abordarea CLI

Apasă pe ' Fereastră ” pentru a deschide bara de căutare și introduceți „ CMD ” în interiorul casetei de căutare, din rezultatele generate. Apoi, selectați „ Prompt de comandă ” și apăsați butonul „ Rulat ca administrator butonul ”:

Selectând opțiunea, va apărea o nouă fereastră de Control Prompt, pentru a opri serviciile „node.js” care rulează în fundal, executați comanda de mai jos:

taskkill / F / nod IM. exe

Rezultatul generat arată că serviciile „node.js” au fost terminate:

Folosind abordarea GUI

Pentru a opri serviciile node.js care rulează din sistem, deschideți „ Gestionar de sarcini ' prin lovirea ' Ctrl + Shift + Esc ” tasta imediat. După deschiderea „Task Manager”, treceți la „ Detalii ”, selectați „ node.exe ” și apăsați butonul „ Încheiați sarcina butonul ” care se află în direcția din dreapta jos, după cum se arată mai jos:

Acesta este totul despre rezolvarea „Eroare: ascultați EADDRINUSE: adresa deja utilizată” în Node.js.

Concluzie

„Eroarea: ascultați EADDRINUSE: adresa deja în uz” apare atunci când mai multe servicii încearcă să utilizeze un singur port în același timp. Pentru a o rezolva, utilizatorul ar trebui să încerce să folosească un alt număr de port sau să oprească serviciile care rulează deja pe numărul de port specificat folosind „ kill-port ” modulul. Dacă eroarea încă nu este rezolvată, omorâți toate rulările „ node.js ” din managerul de activități și reporniți aplicația. Acest ghid a ilustrat posibilele soluții pentru a rezolva problema „Eroare: ascultați EADDRINUSE: adresa deja în uz”.