Kaip išspręsti „Klaidą: klausykite EADDRINUSE: adresas jau naudojamas“?

Kaip Isspresti Klaida Klausykite Eaddrinuse Adresas Jau Naudojamas



Node.js yra vykdymo aplinka, leidžianti „JavaScript“ kalba parašytą kodą vykdyti tinklalapyje arba vietiniame serveryje. Tai vienos gijos aplinka ir asinchroninė. Ji siūlo įvairius įmontuotus ir išorinius modulius, kurie gali būti naudojami įvairioms operacijoms atlikti, pavyzdžiui, HTTP užklausų siuntimui per serverį. Bendraujant su įvairiais vietiniais serveriais yra galimybė gauti keletą klaidų, kurios išsprendžiamos vadovaujantis konkrečiais vadovais.

Šiame vadove paaiškinami galimi „klausykite EADDRINUSE: adresas jau naudojamas“ pataisymai, apimant šiuos skyrius:

Kaip išspręsti „Klaidą: klausykite EADDRINUSE: adresas jau naudojamas“?

Klaida: klausykite EADDRINUSE: adresas jau naudojamas “ atsiranda, kai daugiau nei viena programa ar užduotis bando pasiekti tą patį prievadą. Ši klaida gali atsirasti bandymo arba kūrimo etapuose. Pavyzdžiui, pirmiau minėta klaida bus sukurta siekiant geriau suprasti:







konst expressObj = reikalauti ( 'išreikšti' )
konst demoApp = expressObj ( )
demoApp. gauti ( '/' , ( req, res ) => {
res. json ( {
vardas : „Linuxhint straipsnis apie CORS“ ,
kalba : „Node.js“ ,
taikymas : 'corsApp' ,
kilmės : „Kryžminė kilmė“ ,
tarpinė programinė įranga : 'CORS'
} )
} )
demoApp. klausyk ( 8080 , ( ) => {
konsolė. žurnalas ( `Serveris įsijungė „http://localhost:8080/“ ` )
} )
demoApp. klausyk ( 8080 , ( ) => {
konsolė. žurnalas ( `Serveris įsijungė „http://localhost:8080/“ ` )
} )

Aukščiau pateiktas kodo fragmentas veikia taip:



  • Pirmiausia importuokite „ išreikšti “ modulį ir išsaugokite jo objektą naujame kintamajame “ expressObj “. Naudokite šį kintamąjį kaip konstruktorių, kad sukurtumėte naują greitąją programą pavadinimu ' demoApp “.
  • Tada sukurkite GET užklausą naudodami „ gauti () “ metodą ir nustatykite pagrindinį puslapį kaip šakninį tvarkyklę, perduodami „ / “ kaip pirmasis parametras. Antrasis parametras yra anoniminė atgalinio skambinimo funkcija, kuri siunčia „ JSON ' duomenys kaip atsakas naudojant ' json () “ metodas.
  • Po to leiskite programai vykdyti tą patį prievado numerį „ 8080 ' du kartus. Du kartus vykdant tą patį prievadą, sugeneruojama minėta klaida.

Sugeneruota išvestis sukūrus aukščiau pateiktą kodą rodo klaidą „Klaida: klausykite EADDRINUSE: adresas jau naudojamas“:







Iš esmės yra du sprendimai, kaip išspręsti aukščiau pateiktame išvestyje įvykusią klaidą, tai yra pakeisti prievado numerius arba sustabdyti vieną iš veikiančių procesų. Tačiau yra ir keletas kitų pataisymų, kurie netiesiogiai išsprendžia „ Klaida: klausykite EADDRINUSE: adresas jau naudojamas “ klaida. Šie sprendimai kartu su praktinėmis demonstracijomis pateikiami toliau:

1 sprendimas: paleiskite procesus skirtinguose prievaduose

Labiausiai rekomenduojamas minėtos klaidos sprendimas yra nustatyti prievadų numerius, kuriuose veikia abi paslaugos, kaip mūsų atveju „ 8080 “. Tada atsitiktinai pasirinkite vieną paslaugą ir pakeiskite jos prievado numerį, kad paslaugos klausytųsi „localhost“, bet su skirtingais prievado numeriais. Mūsų kodas po aptarto pakeitimo rodomas žemiau:



konst expressObj = reikalauti ( 'išreikšti' )
konst demoApp = expressObj ( )
demoApp. gauti ( '/' , ( req, res ) => {
res. json ( {
vardas : „Linuxhint straipsnis apie CORS“ ,
kalba : „Node.js“ ,
taikymas : 'corsApp' ,
kilmės : „Kryžminė kilmė“ ,
tarpinė programinė įranga : 'CORS'
} )
} )
demoApp. klausyk ( 8080 , ( ) => {
konsolė. žurnalas ( `Serveris įsijungė „http://localhost:8080/“ ` )
} )
demoApp. klausyk ( 3000 , ( ) => {
konsolė. žurnalas ( `Serveris įsijungė „http://localhost:8080/“ ` )
} )

Išvestis, sugeneruota atlikus aukščiau pateiktą kodą, rodo, kad dabar „ Klaida: klausykite EADDRINUSE: adresas jau naudojamas “ problema išspręsta:

2 sprendimas: sustabdykite procesus, veikiančius tame pačiame prievade

Kitas būdas išspręsti klaidą „klausykite EADDRINUSE: adresas jau naudojamas“ yra sustabdyti procesus, veikiančius konkrečiame jau naudojamame prievade. Dėl to prievadas bus neaktyvus, kurį kūrėjas gali pasiekti, kad galėtų atlikti nurodytas užduotis. Šis sustabdymo procesas atliekamas naudojant išorinį modulį, pavadintą ' nužudymo uostas “.

Pavyzdžiui, visi procesai, kurie veikia nurodytu prievado numeriu “ 8080 “ bus nužudyti naudojant „ nužudymo uostas “ modulis. Yra du „kill-port“ modulio naudojimo būdai ir abu šie metodai yra nurodyti toliau:

1 būdas: įdiegę naudokite „kill-port“ modulį

nužudymo uostas ” modulis yra trečiosios šalies išorinis modulis ir norint naudoti šį modulį projekte node.js. Šį modulį pirmiausia reikia atsisiųsti vykdant toliau nurodytą komandą:

npm įdiegti nužudyti - uostas - g

Žemiau esančiame paveikslėlyje parodyta, kaip baigtas ' nužudymo uostas “ kintamasis:

Įdiegęs vartotojas gali užmušti reikiamo prievado numerio paslaugas. Mūsų atveju prievado numerio paslaugos 8080 “ bus nužudyti per žemiau nurodytą komandą:

nužudyti - uostas -- uostas 8080

Žemiau pateikta išvestis patvirtina, kad visos prievado paslaugos 8080 “ buvo nužudyti:

2 būdas: naudokite „kill-port“ modulį neįdiegę

nužudymo uostas “ modulis gali būti naudojamas neatlikus diegimo proceso, naudojant „ npx “ paketo bėgikas. Pavyzdžiui, „ nužudymo uostas “ modulis naudojamas nurodytiems dviem prievadams užmušti, naudojant toliau nurodytą „npx“ paketo vykdytojo komandą:

npx nužudyti - uostas 8080 9000

Žemiau pateikta išvestis rodo, kad nurodytų prievadų paslaugos ' 9000 “ ir „ 8080 “ buvo nužudyti:

Papildomas patarimas: „kill-port“ modulio pašalinimas

Norėdami pašalinti „ nužudymo uostas “ modulis visame pasaulyje iš sistemos vykdykite toliau nurodytą komandą:

npm uninstall kill - uostas - g

3 sprendimas: nutraukite Node.js paslaugas sistemoje Windows

Jei „Klaida: klausykite EADDRINUSE: adresas jau naudojamas“ vis tiek išlieka, tada užmuškite visus veikiančius „ node.js “ paslaugas naudojant GUI arba CLI metodą.

Naudojant CLI metodą

Paspauskite ' Langas “ mygtuką, kad atidarytumėte paieškos juostą ir įveskite „ CMD “ paieškos laukelyje iš sugeneruotų rezultatų. Tada pasirinkite „ Komandinė eilutė “ programą ir paspauskite „ Vykdykite kaip administratorius “ mygtukas:

Pasirinkus parinktį, pasirodys naujas Valdymo eilutės langas, kad užmuštumėte šiuo metu veikiančias „node.js“ paslaugas fone, vykdykite toliau pateiktą komandą:

Taskkill / F / IM mazgas. exe

Sugeneruota išvestis rodo, kad „node.js“ paslaugos buvo nutrauktos:

Naudojant GUI metodą

Norėdami panaikinti veikiančias node.js paslaugas iš sistemos, atidarykite „ Užduočių tvarkyklė “ paspausdami „ Ctrl + Shift + Esc “ raktus iš karto. Atidarę „Task Manager“, pereikite prie „ Detalės “ tipo, pasirinkite „ node.exe “ paslaugą ir paspauskite „ Baigti užduotį “ mygtukas, esantis apatinėje dešinėje kryptimi, kaip parodyta žemiau:

Viskas apie tai, kaip išspręsti „Klaida: klausykite EADDRINUSE: adresas jau naudojamas“ Node.js.

Išvada

„Klaida: klausykite EADDRINUSE: adresas jau naudojamas“ atsiranda, kai daugiau nei viena paslauga bando naudoti vieną prievadą tuo pačiu metu. Norėdami tai išspręsti, vartotojas turėtų pabandyti naudoti kitą prievado numerį arba užmušti paslaugas, kurios jau veikia nurodytu prievado numeriu, naudodamas „ nužudymo uostas “ modulis. Jei klaida vis tiek neišspręsta, užmuškite visus veikiančius node.js “ paslaugas iš užduočių tvarkyklės ir paleiskite programą iš naujo. Šiame vadove pavaizduoti galimi sprendimai, kaip išspręsti problemą „Klaida: klausykite EADDRINUSE: adresas jau naudojamas“.