Kako riješiti 'Pogreška: slušajte EADDRINUSE: adresa se već koristi'?

Kako Rijesiti Pogreska Slusajte Eaddrinuse Adresa Se Vec Koristi



Node.js je runtime okruženje koje omogućuje izvršavanje koda napisanog u JavaScript jeziku preko web stranice ili lokalnog poslužitelja. To je okruženje s jednom niti i ima asinkronu prirodu. Nudi razne ugrađene i vanjske module koji se mogu koristiti za izvođenje raznih operacija poput slanja HTTP zahtjeva preko poslužitelja. Tijekom interakcije s različitim lokalnim poslužiteljima postoji mogućnost dobivanja višestrukih pogrešaka koje se rješavaju slijedeći posebne upute.

Ovaj vodič objašnjava moguće popravke za 'slušanje EADDRINUSE: adresa se već koristi' pokrivajući donje odjeljke:

Kako riješiti 'Pogreška: slušajte EADDRINUSE: adresa se već koristi'?

' Pogreška: slušajte EADDRINUSE: adresa se već koristi ” javlja se kada više od jedne aplikacije ili zadatka pokuša pristupiti istom priključku. Ova se pogreška može javiti tijekom faza testiranja ili razvoja. Na primjer, gore spomenuta pogreška će se generirati radi boljeg razumijevanja:







konst izrazitiObj = zahtijevati ( 'izraziti' )
konst demoApp = izrazitiObj ( )
demoApp. dobiti ( '/' , ( zahtjev, res ) => {
res. json ( {
Ime : 'Linuxhint članak o CORS-u' ,
Jezik : 'Node.js' ,
primjena : 'corsApp' ,
podrijetlo : 'Unakrsno porijeklo' ,
međuprogramska oprema : 'CORS'
} )
} )
demoApp. slušati ( 8080 , ( ) => {
konzola. log ( `Poslužitelj je pokrenut 'http://localhost:8080/' ` )
} )
demoApp. slušati ( 8080 , ( ) => {
konzola. log ( `Poslužitelj je pokrenut 'http://localhost:8080/' ` )
} )

Gornji isječak koda radi ovako:



  • Prvo uvezite ' izraziti ” modul i pohrani njegov objekt u novu varijablu “ izrazitiObj ”. Koristite ovu varijablu kao konstruktor za stvaranje nove ekspresne aplikacije pod nazivom ' demoApp ”.
  • Zatim kreirajte GET zahtjev koristeći ' dobiti() ' i postavite početnu stranicu kao korijenski rukovatelj prosljeđivanjem ' / ” kao prvi parametar. Drugi parametar je funkcija anonimnog povratnog poziva koja šalje ' JSON ' podataka kao odgovor korištenjem ' json() ” metoda.
  • Nakon toga, izvršite tu aplikaciju preko istog broja priključka ' 8080 ' Dva puta. Ovo izvršavanje istog porta dva puta generira spomenutu grešku.

Generirani izlaz nakon kompilacije gornjeg koda pokazuje pojavu pogreške 'Error: listen EADDRINUSE: address already in use':







Postoje uglavnom dva rješenja za rješavanje pogreške koja se pojavila u gornjem izlazu, a to je promjena brojeva priključaka ili zaustavljanje jednog od pokrenutih procesa. Ali postoji i više drugih popravaka koji neizravno rješavaju ' Pogreška: slušajte EADDRINUSE: adresa se već koristi ” pogreška. Ova rješenja zajedno s praktičnim demonstracijama navedena su u nastavku:

Rješenje 1: Pokrenite procese na različitim portovima

Najpreporučljivije rješenje za spomenutu pogrešku je identificirati brojeve portova na kojima rade obje usluge, kao što je u našem slučaju to “ 8080 ”. Zatim nasumično odaberite jednu uslugu i promijenite njen broj porta kako bi usluge slušale na lokalnom hostu, ali s različitim brojevima porta. Naš kod nakon razmatrane izmjene prikazan je u nastavku:



konst izrazitiObj = zahtijevati ( 'izraziti' )
konst demoApp = izrazitiObj ( )
demoApp. dobiti ( '/' , ( zahtjev, res ) => {
res. json ( {
Ime : 'Linuxhint članak o CORS-u' ,
Jezik : 'Node.js' ,
primjena : 'corsApp' ,
podrijetlo : 'Unakrsno porijeklo' ,
međuprogramska oprema : 'CORS'
} )
} )
demoApp. slušati ( 8080 , ( ) => {
konzola. log ( `Poslužitelj je pokrenut 'http://localhost:8080/' ` )
} )
demoApp. slušati ( 3000 , ( ) => {
konzola. log ( `Poslužitelj je pokrenut 'http://localhost:8080/' ` )
} )

Izlaz generiran nakon izvršavanja gornjeg koda pokazuje da sada ' Pogreška: slušajte EADDRINUSE: adresa se već koristi ” problem je riješen:

Rješenje 2: Zaustavljanje procesa koji se izvode na istom portu

Drugi način za rješavanje pogreške 'slušaj EADDRINUSE: adresa je već u upotrebi' je zaustavljanje procesa koji se izvode na određenom priključku koji je već u upotrebi. Ovo će učiniti port neaktivnim kojem programer može pristupiti za obavljanje određenih zadataka. Ovaj proces zaustavljanja obavlja se uz pomoć vanjskog modula pod nazivom ' kill-port ”.

Na primjer, svi procesi koji se izvode na navedenom broju priključka ' 8080 ' bit će ubijeni pomoću ' kill-port ” modul. Postoje dva načina korištenja modula 'kill-port' i oba su ova pristupa navedena u nastavku:

Metoda 1: Koristite modul 'kill-port' nakon instalacije

' kill-port ” vanjski je modul treće strane i za korištenje ovog modula unutar projekta node.js. Ovaj modul prvo je potrebno preuzeti izvršavanjem dolje navedene naredbe:

npm instalirati kill - luka - g

Donja slika prikazuje završetak instalacije za ' kill-port ” varijabla:

Nakon instalacije, korisnik može ubiti usluge za traženi broj priključka. U našem slučaju usluge porta broj “ 8080 ” bit će ubijeni pomoću dolje navedene naredbe:

ubiti - luka -- luka 8080

Donji rezultat potvrđuje da su sve usluge za port ' 8080 ” ubijeni su:

Metoda 2: Koristite modul 'kill-port' bez instalacije

' kill-port ” modul se može koristiti bez prolaska kroz proces instalacije upotrebom “ npx ” trkač paketa. Na primjer, ' kill-port ” modul se koristi za uništavanje navedena dva porta pomoću naredbe pokretača paketa „npx” navedene u nastavku:

npx ubiti - luka 8080 9000

Donji rezultat pokazuje da usluge za navedene priključke ' 9000 ' i ' 8080 ” ubijeni su:

Dodatni savjet: deinstalacija modula 'kill-port'.

Da biste deinstalirali ' kill-port ” globalno iz sustava izvrši dolje navedenu naredbu:

npm uninstall kill - luka - g

Rješenje 3: Prekinite usluge Node.js u sustavu Windows

Ako se 'Pogreška: slušajte EADDRINUSE: adresa je već u upotrebi' i dalje pojavljuje, ukinite sve pokrenute ' čvor.js ” usluge bilo koristeći GUI ili CLI pristup.

Korištenje CLI pristupa

Pritisni ' Prozor ' za otvaranje trake za pretraživanje i unesite ' CMD ” unutar okvira za pretraživanje, iz generiranih rezultata. Zatim odaberite ' Naredbeni redak ' i pritisnite ' Pokreni kao administrator ' dugme:

Odabirom opcije pojavit će se novi prozor Control Prompt-a, kako biste ubili trenutno pokrenute 'node.js' usluge u pozadini, izvršite naredbu u nastavku:

taskkill / F / IM čvor. egz

Generirani izlaz pokazuje da su usluge 'node.js' prekinute:

Korištenje GUI pristupa

Da biste ugasili pokrenute node.js usluge iz sustava, otvorite ' Upravitelj zadataka ” pritiskom na “ Ctrl + Shift + Esc ” ključeve odmah. Nakon otvaranja 'Upravitelja zadataka', prijeđite na ' pojedinosti ', odaberite ' čvor.exe ' uslugu i pritisnite ' Završi zadatak ” gumb koji se nalazi u donjem desnom smjeru, kao što je prikazano u nastavku:

To je sve o rješavanju 'Pogreške: slušajte EADDRINUSE: adresa se već koristi' u Node.js.

Zaključak

'Pogreška: slušajte EADDRINUSE: adresa je već u upotrebi' pojavljuje se kada više od jedne usluge pokušava koristiti jedan port u isto vrijeme. Da bi ga riješio, korisnik bi trebao pokušati upotrijebiti drugi broj priključka ili zatvoriti usluge koje se već izvode na navedenom broju priključka pomoću ' kill-port ” modul. Ako pogreška i dalje nije riješena, ukinite sve pokrenute ' čvor.js ” iz upravitelja zadataka i ponovno pokrenite aplikaciju. Ovaj vodič je ilustrirao moguća rješenja za rješavanje problema 'Pogreška: slušajte EADDRINUSE: adresa se već koristi'.