Kuidas lahendada 'Viga: kuulake EADDRINUSE: aadress on juba kasutusel'?

Kuidas Lahendada Viga Kuulake Eaddrinuse Aadress On Juba Kasutusel



Node.js on käituskeskkond, mis võimaldab JavaScripti keeles kirjutatud koodi käivitada veebilehe või kohaliku serveri kaudu. See on ühe lõimega keskkond ja sellel on asünkroonne olemus. See pakub erinevaid sisseehitatud ja väliseid mooduleid, mida saab kasutada mitmesuguste toimingute tegemiseks, nagu HTTP-päringute saatmine serveri kaudu. Erinevate kohalike serveritega suheldes on võimalus saada mitu viga, mis lahendatakse konkreetsete juhendite järgi.

Selles juhendis selgitatakse „kuula EADDRINUSE: aadress juba kasutusel” võimalikke parandusi, hõlmates järgmisi jaotisi.

Kuidas lahendada 'Viga: kuulake EADDRINUSE: aadress on juba kasutusel'?

' Viga: kuula EADDRINUSE: aadress on juba kasutusel ” tekib siis, kui samale pordile üritab juurde pääseda rohkem kui üks rakendus või ülesanne. See viga võib ilmneda testimise või arendusfaasis. Näiteks luuakse ülalmainitud viga paremaks mõistmiseks:







konst expressObj = nõuda ( 'väljendama' )
konst demoApp = expressObj ( )
demoApp. saada ( '/' , ( req, res ) => {
res. json ( {
nimi : 'Linuxhinti artikkel CORS-i kohta' ,
keel : 'Node.js' ,
rakendus : 'corsApp' ,
päritolu : 'Rist päritolu' ,
vahevara : 'CORS'
} )
} )
demoApp. kuulake ( 8080 , ( ) => {
konsool. logi ( `Server käivitus 'http://localhost:8080/' ` )
} )
demoApp. kuulake ( 8080 , ( ) => {
konsool. logi ( `Server käivitus 'http://localhost:8080/' ` )
} )

Ülaltoodud koodilõik töötab järgmiselt:



  • Esiteks importige ' väljendada ' moodul ja salvestage selle objekt uude muutujasse ' expressObj ”. Kasutage seda muutujat konstruktorina, et luua uus kiirrakendus nimega ' demoApp ”.
  • Järgmisena looge GET-i päring, kasutades nuppu ' saada () ” meetodit ja määrake avaleht juurkäitlejaks, edastades ' / ” esimese parameetrina. Teine parameeter on anonüümne tagasihelistamise funktsioon, mis saadab ' JSON ' andmed vastusena, kasutades ' json() ” meetod.
  • Pärast seda pange see rakendus käivitama sama pordinumbri kaudu 8080 ' kaks korda. Sama pordi kaks korda käivitamine tekitab mainitud vea.

Pärast ülaltoodud koodi koostamist genereeritud väljund näitab tõrke 'Viga: kuula EADDRINUSE: aadress on juba kasutusel' esinemist:







Ülaltoodud väljundis ilmnenud vea lahendamiseks on peamiselt kaks lahendust, milleks on pordinumbrite muutmine või ühe töötava protsessi peatamine. Kuid on ka mitmeid muid parandusi, mis kaudselt lahendavad Viga: kuula EADDRINUSE: aadress on juba kasutusel ” viga. Need lahendused koos praktiliste demonstratsioonidega on toodud allpool:

Lahendus 1: käivitage protsessid erinevatel portidel

Kõige soovitatavam lahendus mainitud vea jaoks on tuvastada pordi numbrid, millel mõlemad teenused töötavad, nagu meie puhul ' 8080 ”. Seejärel valige juhuslikult üks teenus ja muutke selle pordi numbrit, et teenused kuulaksid kohalikku hosti, kuid erinevate pordinumbritega. Meie kood pärast arutatud muudatust on näidatud allpool:



konst expressObj = nõuda ( 'väljendama' )
konst demoApp = expressObj ( )
demoApp. saada ( '/' , ( req, res ) => {
res. json ( {
nimi : 'Linuxhinti artikkel CORS-i kohta' ,
keel : 'Node.js' ,
rakendus : 'corsApp' ,
päritolu : 'Rist päritolu' ,
vahevara : 'CORS'
} )
} )
demoApp. kuulake ( 8080 , ( ) => {
konsool. logi ( `Server käivitus 'http://localhost:8080/' ` )
} )
demoApp. kuulake ( 3000 , ( ) => {
konsool. logi ( `Server käivitus 'http://localhost:8080/' ` )
} )

Pärast ülaltoodud koodi käivitamist genereeritud väljund näitab, et nüüd Viga: kuula EADDRINUSE: aadress on juba kasutusel ” probleem on lahendatud:

Lahendus 2: peatage samal pordil töötavad protsessid

Veel üks viis vea „kuula EADDRINUSE: aadress juba kasutusel” lahendamiseks on peatada protsessid, mis töötavad konkreetses juba kasutatavas pordis. See muudab pordi jõudeolekuks, millele arendaja pääseb juurde konkreetsete ülesannete täitmiseks. See peatamisprotsess toimub välise mooduli nimega ' kill-port ”.

Näiteks kõik protsessid, mis töötavad määratud pordinumbril ' 8080 ' tapetakse kasutades ' kill-port ” moodul. 'Kill-port' mooduli kasutamiseks on kaks võimalust ja mõlemad lähenemisviisid on toodud allpool:

1. meetod: kasutage pärast installimist 'kill-port' moodulit

' kill-port ” moodul on kolmanda osapoole väline moodul ja selle mooduli kasutamiseks projektis node.js. See moodul tuleb esmalt alla laadida, käivitades alltoodud käsu:

npm install kill - sadamasse - g

Allolev joonis näitab installimise lõpetamist ' kill-port ” muutuja:

Pärast installimist saab kasutaja vajaliku pordinumbri jaoks teenuseid tappa. Meie puhul on pordi number ' 8080 ' tapetakse alloleva käsuga:

tappa - sadamasse -- sadamasse 8080

Allolev väljund kinnitab, et kõik pordi 'teenused' 8080 ' on tapetud:

2. meetod: kasutage 'kill-port' moodulit ilma installita

' kill-port ' moodulit saab kasutada ilma installiprotsessi läbimata, kasutades ' npx ” pakijooksja. Näiteks ' kill-port moodulit kasutatakse määratud kahe pordi tapmiseks, kasutades alltoodud käsku 'npx' paketi käitaja:

npx tapmine - sadamasse 8080 9000

Allolev väljund näitab, et määratud portide teenused ' 9000 ” ja „ 8080 ' on tapetud:

Boonusnõuanne: 'kill-port' mooduli desinstallimine

Et desinstallida ' kill-port ” moodul käivitab süsteemist globaalselt alltoodud käsu:

npm uninstall kill - sadamasse - g

Lahendus 3. Lõpetage Windowsis Node.js teenused

Kui teade 'Viga: kuulake EADDRINUSE: aadress juba kasutusel' püsib endiselt, siis kustutage kõik töötavad ' node.js ” teenuseid, kasutades GUI või CLI lähenemist.

CLI-meetodi kasutamine

Vajutage ' Aken , et avada otsinguriba ja sisestada CMD ” otsingukastis loodud tulemuste hulgast. Seejärel valige ' Käsurida ” rakendust ja vajutage nuppu „ Käivitage administraatorina ” nupp:

Valides suvandi, ilmub uus juhtviiba aken, et tappa taustal praegu töötavad 'node.js' teenused, täitke allolev käsk:

taskkill / F / IM-sõlm. exe

Loodud väljund näitab, et 'node.js' teenused on lõpetatud:

GUI lähenemisviisi kasutamine

Töötavate node.js teenuste kustutamiseks süsteemist avage ' Tegumihaldur ' vajutades nuppu ' Ctrl + Shift + Esc ” klahvid kohe. Pärast 'Task Manager' avamist liikuge jaotisse ' Üksikasjad ' tüüpi, valige ' node.exe teenust ja vajuta nuppu Lõpeta ülesanne ” nupp asub all paremas suunas, nagu allpool näidatud:

See kõik puudutab Node.js-i vea „Viga: kuula EADDRINUSE: aadress on juba kasutusel” lahendamist.

Järeldus

'Viga: kuula EADDRINUSE: aadress on juba kasutusel' tekib siis, kui mitu teenust proovib korraga kasutada ühte porti. Selle lahendamiseks peaks kasutaja proovima kasutada teist pordinumbrit või sulgema teenused, mis juba töötavad määratud pordinumbril, kasutades nuppu ' kill-port ” moodul. Kui viga ikka ei lahene, kustutage kõik töötavad ' node.js ” teenuseid tegumihaldurist ja taaskäivitage rakendus. See juhend on illustreerinud võimalikke lahendusi probleemi „Viga: kuula EADDRINUSE: aadress on juba kasutusel” lahendamiseks.