Kuinka ratkaista 'Virhe: kuuntele EADDRINUSE: osoite jo käytössä'?

Kuinka Ratkaista Virhe Kuuntele Eaddrinuse Osoite Jo Kaytossa



Node.js on ajonaikainen ympäristö, joka sallii JavaScript-kielellä kirjoitetun koodin suorittamisen verkkosivulla tai paikallisessa palvelimessa. Se on yksisäikeinen ympäristö ja sillä on asynkroninen luonne. Se tarjoaa erilaisia ​​sisäänrakennettuja ja ulkoisia moduuleja, joita voidaan käyttää suorittamaan erilaisia ​​toimintoja, kuten HTTP-pyyntöjen lähettämistä palvelimen kautta. Vuorovaikutuksessa erilaisten paikallisten palvelimien kanssa on mahdollista saada useita virheitä, jotka ratkaistaan ​​noudattamalla erityisiä oppaita.

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ä'?

' 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 - g

Alla 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 8080

Alla 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 9000

Alla 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. exe

Luotu 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.