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«?
- 1. rešitev: Zaženite procese na različnih vratih
- 2. rešitev: Zaustavitev procesov, ki se izvajajo na istih vratih
- 1. način: po namestitvi uporabite modul »kill-port«.
- 2. način: uporabite modul »kill-port« brez namestitve
- Dodatni nasvet: odstranitev modula »kill-port«.
- 3. rešitev: Prekinite storitve Node.js v sistemu Windows
- Uporaba pristopa CLI
- Uporaba pristopa GUI
- Zaključek
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 - gSpodnja 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 8080Spodnji 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 9000Spodnji 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. exeUstvarjeni 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«.