Sådan løses 'Fejl: lyt EADDRINUSE: adresse er allerede i brug'?

Sadan Loses Fejl Lyt Eaddrinuse Adresse Er Allerede I Brug



Node.js er et runtime-miljø, der tillader kode skrevet i JavaScript-sprog at køre over websiden eller den lokale server. Det er et enkelt-trådet miljø og har en asynkron karakter. Det tilbyder forskellige indbyggede og eksterne moduler, der kan bruges til at udføre forskellige operationer som at sende HTTP-anmodninger over serveren. Mens du interagerer med forskellige lokale servere, er der en chance for at få flere fejl, som bliver løst ved at følge specifikke guider.

Denne vejledning forklarer de mulige rettelser til 'lyt EADDRINUSE: adresse allerede i brug' ved at dække nedenstående afsnit:

Sådan løses 'Fejl: lyt EADDRINUSE: adresse er allerede i brug'?

Det ' Fejl: lyt EADDRINUSE: adressen er allerede i brug ” opstår, når mere end én applikation eller opgave forsøger at få adgang til den samme port. Denne fejl kan opstå under test- eller udviklingsfaserne. For eksempel vil den ovennævnte fejl blive genereret for bedre forståelse:







konst expressObj = kræve ( 'udtrykke' )
konst demoApp = expressObj ( )
demoApp. ( '/' , ( kræve, res ) => {
res. json ( {
navn : 'Linuxhint-artikel om CORS' ,
Sprog : 'Node.js' ,
Ansøgning : 'corsApp' ,
oprindelse : 'Cross Origin' ,
mellemvare : 'CORS'
} )
} )
demoApp. Hør efter ( 8080 , ( ) => {
konsol. log ( `Serveren startede 'http://localhost:8080/' ` )
} )
demoApp. Hør efter ( 8080 , ( ) => {
konsol. log ( `Serveren startede 'http://localhost:8080/' ` )
} )

Ovenstående kodestykke fungerer således:



  • Først skal du importere ' udtrykke ' modul og gem dets objekt i en ny variabel ' expressObj ”. Brug denne variabel som en konstruktør til at oprette en ny ekspresapplikation med navnet ' demoApp ”.
  • Opret derefter en GET-anmodning ved at bruge ' få() ”-metoden og indstil hjemmesiden som rodbehandler ved at sende ” / ” som den første parameter. Den anden parameter er en anonym tilbagekaldsfunktion, der sender ' JSON ' data som et svar ved brug af ' json() ” metode.
  • Efter det skal du få den app til at køre over det samme portnummer som ' 8080 ' to gange. Denne udførelse af den samme port to gange genererer den nævnte fejl.

Det genererede output efter kompileringen af ​​ovenstående kode viser forekomsten af ​​fejlen 'Fejl: lyt EADDRINUSE: adresse allerede i brug':







Der er hovedsageligt to løsninger til at løse den fejl, der opstod i ovenstående output, nemlig at ændre portnumrene eller stoppe en af ​​de kørende processer. Men der er også flere andre rettelser, der indirekte løser ' Fejl: lyt EADDRINUSE: adressen er allerede i brug ' fejl. Disse løsninger sammen med praktiske demonstrationer er angivet nedenfor:

Løsning 1: Kør processer på forskellige porte

Den mest anbefalede løsning på den nævnte fejl er at identificere de portnumre, som begge tjenester kører på, ligesom det i vores tilfælde er ' 8080 ”. Vælg derefter en tjeneste tilfældigt og rediger dens portnummer for at få tjenesterne til at lytte på localhost, men med forskellige portnumre. Vores kode efter den diskuterede ændring er vist nedenfor:



konst expressObj = kræve ( 'udtrykke' )
konst demoApp = expressObj ( )
demoApp. ( '/' , ( kræve, res ) => {
res. json ( {
navn : 'Linuxhint-artikel om CORS' ,
Sprog : 'Node.js' ,
Ansøgning : 'corsApp' ,
oprindelse : 'Cross Origin' ,
mellemvare : 'CORS'
} )
} )
demoApp. Hør efter ( 8080 , ( ) => {
konsol. log ( `Serveren startede 'http://localhost:8080/' ` )
} )
demoApp. Hør efter ( 3000 , ( ) => {
konsol. log ( `Serveren startede 'http://localhost:8080/' ` )
} )

Output genereret efter udførelse af ovenstående kode viser, at nu ' Fejl: lyt EADDRINUSE: adressen er allerede i brug ' problemet er løst:

Løsning 2: Stop de processer, der kører på den samme port

En anden måde at løse fejlen 'lyt EADDRINUSE: adresse allerede i brug' er ved at stoppe de processer, der kører på den specifikke port, der allerede er i brug. Dette vil gøre porten inaktiv, som kan tilgås af udvikleren for at udføre specificerede opgaver. Denne stopproces udføres ved hjælp af et eksternt modul ved navn ' dræbe-port ”.

For eksempel alle processer, der kører på det angivne portnummer ' 8080 ' vil blive dræbt ved hjælp af ' dræbe-port ” modul. Der er to måder at bruge 'kill-port'-modulet på, og begge disse tilgange er angivet nedenfor:

Metode 1: Brug 'kill-port' modul efter installation

Det ' dræbe-port ” modul er et eksternt tredjepartsmodul og for at kunne bruge dette modul inde i node.js-projektet. Dette modul skal først downloades ved at udføre nedenstående kommando:

npm install kill - Havn - g

Nedenstående figur viser færdiggørelsen af ​​installationen for ' dræbe-port variabel:

Efter installationen kan brugeren afbryde tjenester for det nødvendige portnummer. I vores tilfælde, tjenester af portnummer ' 8080 ” vil blive dræbt via nedenstående kommando:

dræbe - Havn -- Havn 8080

Nedenstående output bekræfter, at alle tjenester for port ' 8080 'er blevet dræbt:

Metode 2: Brug 'kill-port' modul uden installation

Det ' dræbe-port ” modul kan bruges uden at gå gennem installationsprocessen ved at bruge en ” npx ” pakkeløber. For eksempel ' dræbe-port ”-modulet bliver brugt til at dræbe specificerede to porte ved hjælp af “npx”-pakkeløberkommandoen angivet nedenfor:

npx dræbe - Havn 8080 9000

Nedenstående output viser, at tjenesterne for specificerede porte ' 9000 ' og ' 8080 'er blevet dræbt:

Bonustip: Afinstallation af 'kill-port' modul

For at afinstallere ' dræbe-port ” modul globalt fra systemet udfør nedenstående kommando:

npm afinstaller kill - Havn - g

Løsning 3: Afslut Node.js-tjenesterne på Windows

Hvis 'Fejl: lyt EADDRINUSE: adresse allerede i brug' stadig vedvarer, så dræb alle kørende ' node.js ” tjenester enten ved hjælp af GUI eller CLI tilgang.

Brug af CLI-tilgang

Tryk på ' Vindue '-knappen for at åbne søgefeltet og indtaste ' CMD ” inde i søgefeltet fra de genererede resultater. Vælg derefter ' Kommandoprompt '-applikation, og tryk på ' Kør som administrator ” knap:

Ved at vælge indstillingen vises et nyt vindue med kontrolprompt, for at dræbe de aktuelt kørende 'node.js'-tjenester i baggrunden, udfør nedenstående kommando:

taskkill / F / IM node. exe

Det genererede output viser, at 'node.js'-tjenesterne er blevet afsluttet:

Brug af GUI-tilgang

For at dræbe de kørende node.js-tjenester fra systemet skal du åbne ' Jobliste ' ved at trykke på ' Ctrl + Shift + Esc ” taster med det samme. Efter at have åbnet 'Task Manager', gå til ' detaljer ' type, vælg ' node.exe ' service, og tryk på ' Afslut opgave ”-knap i nederste højre retning, som vist nedenfor:

Det handler om at løse 'Fejl: lyt EADDRINUSE: adresse allerede i brug' i Node.js.

Konklusion

'Fejl: lyt EADDRINUSE: adresse allerede i brug' opstår, når mere end én tjeneste forsøger at bruge en enkelt port på samme tid. For at løse det skal brugeren prøve at bruge et andet portnummer eller dræbe de tjenester, der allerede kører på det angivne portnummer ved hjælp af ' dræbe-port ” modul. Hvis fejlen stadig ikke er løst, skal du dræbe alle kørende ' node.js ” tjenester fra task manager og genstart din applikation. Denne vejledning har illustreret de mulige løsninger til at løse problemet 'Fejl: lyt EADDRINUSE: adresse allerede i brug'.