Hvordan løser jeg 'Feil: lytt EADDRINUSE: adressen er allerede i bruk'?

Hvordan Loser Jeg Feil Lytt Eaddrinuse Adressen Er Allerede I Bruk



Node.js er et kjøretidsmiljø som lar kode skrevet på JavaScript-språket kjøres over nettsiden eller den lokale serveren. Det er et en-trådet miljø og har en asynkron natur. Den tilbyr ulike innebygde og eksterne moduler som kan brukes til å utføre ulike operasjoner som å sende HTTP-forespørsler over serveren. Mens du samhandler med forskjellige lokale servere er det en sjanse til å få flere feil som løses ved å følge spesifikke guider.

Denne veiledningen forklarer de mulige rettelsene for 'lytt EADDRINUSE: adresse som allerede er i bruk' ved å dekke avsnittene nedenfor:

Hvordan løser jeg 'Feil: lytt EADDRINUSE: adressen er allerede i bruk'?

« Feil: lytt EADDRINUSE: adressen er allerede i bruk ” oppstår når mer enn én applikasjon eller oppgave prøver å få tilgang til samme port. Denne feilen kan oppstå under test- eller utviklingsfasen. For eksempel vil den ovennevnte feilen bli generert for bedre forståelse:







konst expressObj = krever ( 'uttrykke' )
konst demoApp = expressObj ( )
demoApp. ( '/' , ( krav, res ) => {
res. json ( {
Navn : 'Linuxhint-artikkel om CORS' ,
Språk : 'Node.js' ,
applikasjon : 'corsApp' ,
opprinnelse : 'Cross Origin' ,
mellomvare : 'CORS'
} )
} )
demoApp. lytte ( 8080 , ( ) => {
konsoll. Logg ( `Tjeneren startet på 'http://localhost:8080/' ` )
} )
demoApp. lytte ( 8080 , ( ) => {
konsoll. Logg ( `Tjeneren startet på 'http://localhost:8080/' ` )
} )

Kodebiten ovenfor fungerer slik:



  • Først importerer du ' uttrykke ' modul og lagre objektet i en ny variabel ' expressObj '. Bruk denne variabelen som en konstruktør for å lage en ny ekspressapplikasjon kalt ' demoApp '.
  • Deretter oppretter du en GET-forespørsel ved å bruke ' få() '-metoden og angi hjemmesiden som en rotbehandler ved å sende ' / ' som den første parameteren. Den andre parameteren er en anonym tilbakeringingsfunksjon som sender ' JSON ' data som et svar ved bruk av ' json() 'metoden.
  • Etter det, få den appen til å kjøre over det samme portnummeret til ' 8080 ' to ganger. Denne kjøringen av samme port to ganger genererer den nevnte feilen.

Den genererte utgangen etter kompileringen av koden ovenfor viser forekomsten av en 'Feil: lytt EADDRINUSE: adresse allerede i bruk'-feil:







Det er hovedsakelig to løsninger for å løse feilen som oppsto i utgangen ovenfor, som er å endre portnumrene eller stoppe en av de kjørende prosessene. Men det er også flere andre rettelser som indirekte løser ' Feil: lytt EADDRINUSE: adressen er allerede i bruk ' feil. Disse løsningene sammen med praktiske demonstrasjoner er angitt nedenfor:

Løsning 1: Kjør prosesser på forskjellige porter

Den mest anbefalte løsningen for den nevnte feilen er å identifisere portnumrene som begge tjenestene kjører på som i vårt tilfelle er det ' 8080 '. Velg deretter en tjeneste tilfeldig og endre portnummeret for å få tjenestene til å lytte på localhost, men med forskjellige portnumre. Koden vår etter den omtalte endringen er vist nedenfor:



konst expressObj = krever ( 'uttrykke' )
konst demoApp = expressObj ( )
demoApp. ( '/' , ( krav, res ) => {
res. json ( {
Navn : 'Linuxhint-artikkel om CORS' ,
Språk : 'Node.js' ,
applikasjon : 'corsApp' ,
opprinnelse : 'Cross Origin' ,
mellomvare : 'CORS'
} )
} )
demoApp. lytte ( 8080 , ( ) => {
konsoll. Logg ( `Tjeneren startet på 'http://localhost:8080/' ` )
} )
demoApp. lytte ( 3000 , ( ) => {
konsoll. Logg ( `Tjeneren startet på 'http://localhost:8080/' ` )
} )

Utdataene generert etter utførelse av koden ovenfor viser at nå ' Feil: lytt EADDRINUSE: adressen er allerede i bruk ' problemet er løst:

Løsning 2: Stoppe prosessene som kjører på samme port

En annen måte å løse feilen 'lytt EADDRINUSE: adresse allerede i bruk' er ved å stoppe prosessene som kjører på den spesifikke porten som allerede er i bruk. Dette vil gjøre porten inaktiv som kan nås av utvikleren for å utføre spesifiserte oppgaver. Denne stoppprosessen gjøres ved hjelp av en ekstern modul kalt ' kill-port '.

For eksempel, alle prosesser som kjører på det angitte portnummeret ' 8080 ' kommer til å bli drept ved å bruke ' kill-port ' modul. Det er to måter å bruke 'kill-port'-modulen på, og begge disse tilnærmingene er angitt nedenfor:

Metode 1: Bruk 'kill-port'-modulen etter installasjon

« kill-port ”-modulen er en tredjeparts ekstern modul og for å bruke denne modulen i node.js-prosjektet. Denne modulen må lastes ned først ved å utføre kommandoen nedenfor:

npm install kill - havn - g

Figuren nedenfor viser fullføringen av installasjonen for ' kill-port variabel:

Etter installasjonen kan brukeren drepe tjenester for det nødvendige portnummeret. I vårt tilfelle, tjenestene til portnummer ' 8080 ' kommer til å bli drept via følgende kommando:

drepe - havn -- havn 8080

Utgangen nedenfor bekrefter at alle tjenester for port ' 8080 'har blitt drept:

Metode 2: Bruk 'kill-port'-modulen uten installasjon

« kill-port '-modulen kan brukes uten å gå gjennom installasjonsprosessen ved å bruke en ' npx ” pakkeløper. For eksempel, ' kill-port '-modulen brukes til å drepe spesifiserte to porter ved å bruke 'npx'-pakkeløperkommandoen angitt nedenfor:

npx drepe - havn 8080 9000

Utgangen nedenfor viser at tjenestene for spesifiserte porter ' 9000 ' og ' 8080 'har blitt drept:

Bonustips: Avinstallering av 'kill-port'-modulen

For å avinstallere ' kill-port ”-modul globalt fra systemet utfør kommandoen nedenfor:

npm uninstall kill - havn - g

Løsning 3: Avslutt Node.js-tjenestene på Windows

Hvis 'Feil: lytt EADDRINUSE: adresse som allerede er i bruk' fortsatt vedvarer, drep alle som kjører ' node.js ' tjenester enten ved å bruke GUI eller CLI-tilnærming.

Bruker CLI-tilnærmingen

Trykk ' Vindu '-knappen for å åpne søkefeltet og skrive inn ' CMD ” inne i søkefeltet, fra de genererte resultatene. Deretter velger du ' Ledeteksten '-applikasjonen, og trykk på ' Kjør som administrator ”-knapp:

Ved å velge alternativet vil et nytt vindu med kontrollprompt vises, for å drepe de for øyeblikket kjørende 'node.js'-tjenestene i bakgrunnen, utfør kommandoen nedenfor:

oppgavekill / F / IM-node. exe

Den genererte utgangen viser at 'node.js'-tjenestene er avsluttet:

Bruker GUI-tilnærming

For å drepe de kjørende node.js-tjenestene fra systemet, åpne ' Oppgavebehandling ved å trykke på Ctrl + Shift + Esc ”-tastene umiddelbart. Etter å ha åpnet 'Oppgavebehandling', gå til ' Detaljer ' type, velg ' node.exe ' tjenesten, og trykk ' Avslutt oppgave ”-knappen som ligger nederst til høyre, som vist nedenfor:

Det handler om å løse 'Feil: lytt EADDRINUSE: adressen allerede i bruk' i Node.js.

Konklusjon

'Feil: lytt EADDRINUSE: adresse allerede i bruk' oppstår når mer enn én tjeneste prøver å bruke en enkelt port samtidig. For å løse det, bør brukeren prøve å bruke et annet portnummer eller drepe tjenestene som allerede kjører på det angitte portnummeret ved å bruke ' kill-port ' modul. Hvis feilen fortsatt ikke er løst, drep alle som kjører ' node.js ”-tjenester fra oppgavebehandlingen og start applikasjonen på nytt. Denne veiledningen har illustrert mulige løsninger for å løse problemet 'Feil: lytt EADDRINUSE: adresse allerede i bruk'.