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'?
- Løsning 1: Kjør prosesser på forskjellige porter
- Løsning 2: Stoppe prosessene som kjører på samme port
- Metode 1: Bruk 'kill-port'-modulen etter installasjon
- Metode 2: Bruk 'kill-port'-modulen uten installasjon
- Bonustips: Avinstallering av 'kill-port'-modulen
- Løsning 3: Avslutt Node.js-tjenestene på Windows
- Bruker CLI-tilnærmingen
- Bruker GUI-tilnærming
- Konklusjon
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. få ( '/' , ( 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. få ( '/' , ( 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 - gFiguren 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 8080Utgangen 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 9000Utgangen 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. exeDen 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'.