Kako razrešiti »Napaka: poslušaj EADDRINUSE: naslov je že v uporabi«?

Kako Razresiti Napaka Poslusaj Eaddrinuse Naslov Je Ze V Uporabi



Node.js je izvajalno okolje, ki omogoča izvajanje kode, napisane v jeziku JavaScript, na spletni strani ali lokalnem strežniku. Je enonitno okolje in ima asinhrono naravo. Ponuja različne vgrajene in zunanje module, ki jih je mogoče uporabiti za izvajanje različnih operacij, kot je pošiljanje zahtev HTTP prek strežnika. Med interakcijo z različnimi lokalnimi strežniki obstaja možnost, da dobite več napak, ki jih odpravite z upoštevanjem posebnih navodil.

Ta priročnik pojasnjuje možne popravke za »poslušaj EADDRINUSE: naslov je že v uporabi«, tako da pokriva spodnje razdelke:

Kako razrešiti »Napaka: poslušaj EADDRINUSE: naslov je že v uporabi«?

' Napaka: poslušaj EADDRINUSE: naslov je že v uporabi ” se pojavi, ko več kot ena aplikacija ali opravilo poskuša dostopati do istih vrat. Ta napaka se lahko pojavi med fazo testiranja ali razvoja. Za boljše razumevanje bo na primer ustvarjena zgoraj omenjena napaka:







konst expressObj = zahtevati ( 'express' )
konst demoApp = expressObj ( )
demoApp. dobiti ( '/' , ( zahteva, res ) => {
res. json ( {
ime : 'Linuxhint članek o CORS' ,
jezik : 'Node.js' ,
aplikacija : 'corsApp' ,
izvor : 'Navzkrižni izvor' ,
vmesna programska oprema : 'CORS'
} )
} )
demoApp. poslušaj ( 8080 , ( ) => {
konzola. dnevnik ( `Strežnik se je zagnal 'http://localhost:8080/' ` )
} )
demoApp. poslušaj ( 8080 , ( ) => {
konzola. dnevnik ( `Strežnik se je zagnal 'http://localhost:8080/' ` )
} )

Zgornji delček kode deluje takole:



  • Najprej uvozite » ekspresno ” modul in shrani njegov objekt v novo spremenljivko “ expressObj ”. Uporabite to spremenljivko kot konstruktor za ustvarjanje nove ekspresne aplikacije z imenom ' demoApp ”.
  • Nato ustvarite zahtevo GET z uporabo ' dobiti () ' in nastavite domačo stran kot korenski obravnavo tako, da posredujete ' / ” kot prvi parameter. Drugi parameter je funkcija anonimnega povratnega klica, ki pošlje ' JSON ' podatkov kot odgovor z uporabo ' json() ” metoda.
  • Po tem zagotovite, da se ta aplikacija izvaja prek iste številke vrat ' 8080 ' dvakrat. Ta dvakratna izvedba istih vrat povzroči omenjeno napako.

Izhod, ustvarjen po prevajanju zgornje kode, prikazuje pojav napake »Napaka: poslušaj EADDRINUSE: naslov je že v uporabi«:







Obstajata predvsem dve rešitvi za rešitev napake, ki se je pojavila v zgornjem izhodu, in sicer spremenite številke vrat ali zaustavite enega od tekočih procesov. Obstaja pa tudi več drugih popravkov, ki posredno odpravljajo ' Napaka: poslušaj EADDRINUSE: naslov je že v uporabi ” napaka. Te rešitve skupaj s praktičnimi predstavitvami so navedene spodaj:

1. rešitev: Zaženite procese na različnih vratih

Najbolj priporočljiva rešitev za omenjeno napako je prepoznavanje številk vrat, na katerih delujeta obe storitvi, kot je v našem primeru to “ 8080 ”. Nato naključno izberite eno storitev in spremenite njeno številko vrat, da bodo storitve poslušale na lokalnem gostitelju, vendar z različnimi številkami vrat. Naša koda po obravnavani spremembi je prikazana spodaj:



konst expressObj = zahtevati ( 'express' )
konst demoApp = expressObj ( )
demoApp. dobiti ( '/' , ( zahteva, res ) => {
res. json ( {
ime : 'Linuxhint članek o CORS' ,
jezik : 'Node.js' ,
aplikacija : 'corsApp' ,
izvor : 'Navzkrižni izvor' ,
vmesna programska oprema : 'CORS'
} )
} )
demoApp. poslušaj ( 8080 , ( ) => {
konzola. dnevnik ( `Strežnik se je zagnal 'http://localhost:8080/' ` )
} )
demoApp. poslušaj ( 3000 , ( ) => {
konzola. dnevnik ( `Strežnik se je zagnal 'http://localhost:8080/' ` )
} )

Izhod, ustvarjen po izvedbi zgornje kode, kaže, da je zdaj » Napaka: poslušaj EADDRINUSE: naslov je že v uporabi ” Težava je rešena:

2. rešitev: Zaustavitev procesov, ki se izvajajo na istih vratih

Drug način za razrešitev napake »poslušaj EADDRINUSE: naslov že v uporabi« je zaustavitev procesov, ki se izvajajo na določenih vratih, ki so že v uporabi. S tem bodo vrata nedejavna, do katerih lahko dostopa razvijalec za izvajanje določenih nalog. Ta postopek zaustavitve se izvede s pomočjo zunanjega modula z imenom ' kill-port ”.

Na primer, vsi procesi, ki se izvajajo na določeni številki vrat ' 8080 ' bodo ubiti z uporabo ' kill-port ” modul. Obstajata dva načina za uporabo modula »kill-port« in oba pristopa sta navedena spodaj:

1. način: po namestitvi uporabite modul »kill-port«.

' kill-port ” je zunanji modul tretje osebe in za uporabo tega modula znotraj projekta node.js. Ta modul je treba najprej prenesti z izvedbo spodnjega ukaza:

npm namestite kill - pristanišče - g

Spodnja slika prikazuje dokončanje namestitve za “ kill-port ” spremenljivka:

Po namestitvi lahko uporabnik prekine storitve za zahtevano številko vrat. V našem primeru so storitve številke vrat ' 8080 ” bodo uničeni s spodnjim ukazom:

ubiti - pristanišče -- pristanišče 8080

Spodnji rezultat potrjuje, da so vse storitve za vrata ' 8080 ” so bili ubiti:

2. način: uporabite modul »kill-port« brez namestitve

' kill-port ' se lahko uporablja brez postopka namestitve z uporabo ' npx ” tekač paketov. Na primer, ' kill-port ” se uporablja za uničenje določenih dveh vrat z uporabo spodaj navedenega ukaza izvajalca paketov ”npx”:

npx ubiti - pristanišče 8080 9000

Spodnji rezultat kaže, da storitve za določena vrata ' 9000 « in » 8080 ” so bili ubiti:

Dodatni nasvet: odstranitev modula »kill-port«.

Če želite odstraniti » kill-port ” globalno iz sistema izvedite spodnji ukaz:

npm uninstall kill - pristanišče - g

3. rešitev: Prekinite storitve Node.js v sistemu Windows

Če se »Napaka: poslušaj EADDRINUSE: naslov je že v uporabi« še vedno pojavlja, ubij vse delujoče » vozlišče.js ” storitev bodisi z uporabo pristopa GUI ali CLI.

Uporaba pristopa CLI

Pritisnite ' Okno «, da odprete iskalno vrstico in vnesete » CMD ” znotraj iskalnega polja iz ustvarjenih rezultatov. Nato izberite » Ukazni poziv ' in pritisnite ' Zaženi kot skrbnik ” gumb:

Če izberete možnost, se prikaže novo okno nadzornega poziva, da uničite trenutno delujoče storitve »node.js« v ozadju, izvedite spodnji ukaz:

taskkill / F / IM vozlišče. exe

Ustvarjeni izhod kaže, da so bile storitve »node.js« prekinjene:

Uporaba pristopa GUI

Če želite uničiti delujoče storitve node.js iz sistema, odprite » Upravitelj opravil ' s pritiskom na ' Ctrl + Shift + Esc ” tipke takoj. Ko odprete »Upravitelja opravil«, pojdite na » Podrobnosti ', izberite ' vozlišče.exe ' storitev in pritisnite ' Končaj nalogo «, ki se nahaja v spodnji desni smeri, kot je prikazano spodaj:

To je vse o razrešitvi »Napaka: poslušaj EADDRINUSE: naslov je že v uporabi« v Node.js.

Zaključek

»Napaka: poslušaj EADDRINUSE: naslov je že v uporabi« se pojavi, ko poskuša več kot ena storitev uporabiti ena vrata hkrati. Če želite to rešiti, mora uporabnik poskusiti uporabiti drugo številko vrat ali uničiti storitve, ki se že izvajajo na določeni številki vrat, z uporabo ' kill-port ” modul. Če napaka še vedno ni odpravljena, ubijte vse zagnane » vozlišče.js ” iz upravitelja opravil in znova zaženite aplikacijo. Ta priročnik prikazuje možne rešitve za rešitev težave »Napaka: poslušaj EADDRINUSE: naslov je že v uporabi«.