Tämä opas selittää mahdolliset korjaukset 'kuuntele EADDRINUSE: osoite jo käytössä' kattamalla seuraavat kohdat:
- Kuinka ratkaista 'Virhe: kuuntele EADDRINUSE: osoite jo käytössä'?
- Ratkaisu 1: Suorita prosessit eri porteissa
- Ratkaisu 2: Samassa portissa käynnissä olevien prosessien pysäyttäminen
- Tapa 1: Käytä 'kill-port' -moduulia asennuksen jälkeen
- Tapa 2: Käytä 'kill-port' -moduulia ilman asennusta
- Bonusvinkki: 'Kill-port' -moduulin asennuksen poistaminen
- Ratkaisu 3: Lopeta Node.js-palvelut Windowsissa
- CLI-lähestymistavan käyttö
- GUI-lähestymistavan käyttö
- Johtopäätös
Kuinka ratkaista 'Virhe: kuuntele EADDRINUSE: osoite jo käytössä'?
' Virhe: kuuntele EADDRINUSE: osoite on jo käytössä ” syntyy, kun useampi kuin yksi sovellus tai tehtävä yrittää käyttää samaa porttia. Tämä virhe voi ilmaantua testaus- tai kehitysvaiheessa. Esimerkiksi yllä mainittu virhe luodaan paremman ymmärtämisen vuoksi:
konst expressObj = vaatia ( 'ilmaista' )
konst demoApp = expressObj ( )
demoApp. saada ( '/' , ( req, res ) => {
res. json ( {
nimi : 'Linuxhintin artikkeli CORSista' ,
Kieli : 'Node.js' ,
sovellus : 'corsApp' ,
alkuperä : 'ristiperäinen' ,
väliohjelmisto : 'CORS'
} )
} )
demoApp. kuunnella ( 8080 , ( ) => {
konsoli. Hirsi ( `Palvelin käynnistyi 'http://localhost:8080/' ` )
} )
demoApp. kuunnella ( 8080 , ( ) => {
konsoli. Hirsi ( `Palvelin käynnistyi 'http://localhost:8080/' ` )
} )
Yllä oleva koodinpätkä toimii näin:
- Tuo ensin ' ilmaista ' moduuli ja tallenna sen objekti uuteen muuttujaan ' expressObj ”. Käytä tätä muuttujaa rakentajana luodaksesi uuden pikasovelluksen nimeltä ' demoApp ”.
- Luo seuraavaksi GET-pyyntö käyttämällä ' saada() ' -menetelmää ja aseta kotisivu juurikäsittelijäksi ohittamalla ' / ” ensimmäisenä parametrina. Toinen parametri on anonyymi takaisinsoittotoiminto, joka lähettää ' JSON ”tiedot vastauksena käyttämällä ” json() ”menetelmä.
- Tämän jälkeen aseta sovellus suorittamaan samaa porttinumeroa ' 8080 ' kaksi kertaa. Tämä saman portin suorittaminen kaksi kertaa aiheuttaa mainitun virheen.
Yllä olevan koodin kääntämisen jälkeen luotu tulos näyttää virheen 'Virhe: kuuntele EADDRINUSE: osoite jo käytössä':
Yllä olevassa lähdössä ilmenneen virheen ratkaisemiseksi on pääasiassa kaksi ratkaisua, jotka ovat porttinumeroiden vaihtaminen tai jonkin käynnissä olevan prosessin pysäyttäminen. Mutta on myös useita muita korjauksia, jotka ratkaisevat epäsuorasti ' Virhe: kuuntele EADDRINUSE: osoite on jo käytössä ”virhe. Nämä ratkaisut sekä käytännön esittelyt on esitetty alla:
Ratkaisu 1: Suorita prosessit eri porteissa
Suositeltu ratkaisu mainittuun virheeseen on tunnistaa porttinumerot, joissa molemmat palvelut toimivat, kuten meidän tapauksessamme ' 8080 ”. Valitse sitten yksi palvelu satunnaisesti ja muokkaa sen porttinumeroa, jotta palvelut kuuntelevat localhostilla, mutta eri porttinumeroilla. Koodimme käsitellyn muutoksen jälkeen näkyy alla:
konst expressObj = vaatia ( 'ilmaista' )
konst demoApp = expressObj ( )
demoApp. saada ( '/' , ( req, res ) => {
res. json ( {
nimi : 'Linuxhintin artikkeli CORSista' ,
Kieli : 'Node.js' ,
sovellus : 'corsApp' ,
alkuperä : 'ristiperäinen' ,
väliohjelmisto : 'CORS'
} )
} )
demoApp. kuunnella ( 8080 , ( ) => {
konsoli. Hirsi ( `Palvelin käynnistyi 'http://localhost:8080/' ` )
} )
demoApp. kuunnella ( 3000 , ( ) => {
konsoli. Hirsi ( `Palvelin käynnistyi 'http://localhost:8080/' ` )
} )
Yllä olevan koodin suorittamisen jälkeen luotu tulos osoittaa, että nyt ' Virhe: kuuntele EADDRINUSE: osoite on jo käytössä 'ongelma ratkaistu:
Ratkaisu 2: Samassa portissa käynnissä olevien prosessien pysäyttäminen
Toinen tapa ratkaista 'kuuntele EADDRINUSE: osoite jo käytössä' -virhe on pysäyttää prosessit, jotka ovat käynnissä tietyssä jo käytössä olevassa portissa. Tämä tekee portin käyttämättömäksi, jota kehittäjä voi käyttää tiettyjen tehtävien suorittamiseksi. Tämä pysäytysprosessi suoritetaan ulkoisen moduulin avulla nimeltä ' kill-portti ”.
Esimerkiksi kaikki prosessit, jotka ovat käynnissä määritetyllä porttinumerolla ' 8080 'aiotaan tappaa käyttämällä' kill-portti ” moduuli. 'Kill-port'-moduulia voi käyttää kahdella tavalla, ja molemmat lähestymistavat on esitetty alla:
Tapa 1: Käytä 'kill-port' -moduulia asennuksen jälkeen
' kill-portti ”-moduuli on kolmannen osapuolen ulkoinen moduuli ja käyttääkseen tätä moduulia node.js-projektissa. Tämä moduuli on ladattava ensin suorittamalla alla oleva komento:
npm install kill - portti - gAlla oleva kuva näyttää asennuksen valmistumisen ' kill-portti 'muuttuja:
Asennuksen jälkeen käyttäjä voi lopettaa tarvittavan porttinumeron palvelut. Meidän tapauksessamme portin numeron palvelut 8080 ” tapetaan alla ilmoitetulla komennolla:
tappaa - portti -- portti 8080Alla oleva tulos vahvistaa, että kaikki palvelut portille ' 8080 'on tapettu:
Tapa 2: Käytä 'kill-port' -moduulia ilman asennusta
' kill-portti ' -moduulia voidaan käyttää ilman asennusprosessia käyttämällä ' npx ” paketin juoksija. Esimerkiksi ' kill-portti ' -moduulia käytetään tappamaan määritetyt kaksi porttia käyttämällä alla olevaa 'npx'-paketin runner-komentoa:
npx tappaa - portti 8080 9000Alla oleva tulos osoittaa, että palvelut tietyille porteille ' 9000 ' ja ' 8080 ”on tapettu:
Bonusvinkki: 'Kill-port' -moduulin asennuksen poistaminen
Poistaaksesi ' kill-portti ” moduuli globaalisti järjestelmästä suorittaa alla olevan komennon:
npm uninstall kill - portti - g
Ratkaisu 3: Lopeta Node.js-palvelut Windowsissa
Jos 'Virhe: kuuntele EADDRINUSE: osoite jo käytössä' jatkuu edelleen, lopeta kaikki käynnissä olevat ' node.js ”-palveluita joko GUI- tai CLI-lähestymistapaa käyttäen.
CLI-lähestymistavan käyttö
Paina ' Ikkuna ' -painiketta avataksesi hakupalkin ja kirjoittamalla ' CMD ' hakukentän sisällä luoduista tuloksista. Valitse sitten ' Komentokehote ' -sovellusta ja paina ' Suorita järjestelmänvalvojana ”-painike:
Valitsemalla vaihtoehdon, näkyviin tulee uusi ohjauskehotteen ikkuna, jossa voit lopettaa käynnissä olevat 'node.js' -palvelut taustalla suorittamalla alla olevan komennon:
taskkill / F / IM-solmu. exeLuotu tulos osoittaa, että 'node.js'-palvelut on lopetettu:
GUI-lähestymistavan käyttö
Voit lopettaa käynnissä olevat node.js-palvelut järjestelmästä avaamalla Tehtävienhallinta ' napauttamalla ' Ctrl + Shift + Esc ”näppäimet välittömästi. Kun olet avannut 'Tehtävienhallinnan', siirry kohtaan ' Yksityiskohdat 'tyyppiä, valitse ' node.exe -palvelua ja paina Lopeta tehtävä ” -painike, joka sijaitsee oikeassa alakulmassa, alla olevan kuvan mukaisesti:
Siinä on kyse Node.js:n 'Virhe: kuuntele EADDRINUSE: osoite jo käytössä' -kohdan ratkaisemisesta.
Johtopäätös
'Virhe: kuuntele EADDRINUSE: osoite jo käytössä' syntyy, kun useampi kuin yksi palvelu yrittää käyttää yhtä porttia samanaikaisesti. Ongelman ratkaisemiseksi käyttäjän tulee yrittää käyttää toista porttinumeroa tai lopettaa palvelut, jotka ovat jo käynnissä määritetyllä porttinumerolla käyttämällä ' kill-portti ” moduuli. Jos virhe ei vieläkään ratkea, lopeta kaikki käynnissä olevat ' node.js ”-palvelut tehtävähallinnasta ja käynnistä sovellus uudelleen. Tämä opas on havainnollistanut mahdollisia ratkaisuja 'Virhe: kuuntele EADDRINUSE: osoite jo käytössä' -ongelman ratkaisemiseksi.