Hur löser jag 'Fel: lyssna EADDRINUSE: adressen används redan'?

Hur Loser Jag Fel Lyssna Eaddrinuse Adressen Anvands Redan



Node.js är en runtime-miljö som tillåter kod skriven på JavaScript-språket att köras över webbsidan eller den lokala servern. Det är en entrådig miljö och har en asynkron karaktär. Den erbjuder olika inbyggda och externa moduler som kan användas för att utföra olika operationer som att skicka HTTP-förfrågningar över servern. När du interagerar med olika lokala servrar finns det en chans att få flera fel som löses genom att följa specifika guider.

Den här guiden förklarar möjliga korrigeringar för 'lyssna EADDRINUSE: adress som redan används' genom att täcka nedanstående avsnitt:

Hur löser jag 'Fel: lyssna EADDRINUSE: adress som redan används'?

den ' Fel: lyssna EADDRINUSE: adressen används redan ” uppstår när mer än en applikation eller uppgift försöker komma åt samma port. Detta fel kan uppstå under test- eller utvecklingsfasen. Till exempel kommer det ovan nämnda felet att genereras för bättre förståelse:







konst expressObj = behöva ( 'uttrycka' )
konst demoApp = expressObj ( )
demoApp. skaffa sig ( '/' , ( req, res ) => {
res. json ( {
namn : 'Linuxhint-artikel om CORS' ,
språk : 'Node.js' ,
Ansökan : 'corsApp' ,
ursprung : 'Cross Origin' ,
mellanprogram : 'CORS'
} )
} )
demoApp. lyssna ( 8080 , ( ) => {
trösta. logga ( `Server startade 'http://localhost:8080/' ` )
} )
demoApp. lyssna ( 8080 , ( ) => {
trösta. logga ( `Server startade 'http://localhost:8080/' ` )
} )

Ovanstående kodavsnitt fungerar så här:



  • Importera först ' uttrycka ' modul och lagra dess objekt i en ny variabel ' expressObj ”. Använd den här variabeln som en konstruktor för att skapa en ny expressapplikation med namnet ' demoApp ”.
  • Skapa sedan en GET-förfrågan med hjälp av ' skaffa sig() '-metoden och ställ in hemsidan som en rothanterare genom att skicka ' / ” som första parameter. Den andra parametern är en anonym återuppringningsfunktion som skickar ' JSON ' data som ett svar genom att använda ' json() 'metoden.
  • Efter det, gör att appen körs över samma portnummer för ' 8080 ' två gånger. Denna exekvering av samma port två gånger genererar det nämnda felet.

Den genererade utdata efter kompileringen av ovanstående kod visar förekomsten av ett 'Fel: lyssna EADDRINUSE: adress som redan används':







Det finns huvudsakligen två lösningar för att lösa felet som uppstod i ovanstående utdata som är att ändra portnumren eller stoppa en av de pågående processerna. Men det finns flera andra korrigeringar också som indirekt löser ' Fel: lyssna EADDRINUSE: adressen används redan ' fel. Dessa lösningar tillsammans med praktiska demonstrationer anges nedan:

Lösning 1: Kör processer på olika portar

Den mest rekommenderade lösningen för det nämnda felet är att identifiera portnumren som båda tjänsterna körs på som i vårt fall är det ' 8080 ”. Välj sedan en tjänst slumpmässigt och ändra dess portnummer för att få tjänsterna att lyssna på localhost men med olika portnummer. Vår kod efter den diskuterade modifieringen visas nedan:



konst expressObj = behöva ( 'uttrycka' )
konst demoApp = expressObj ( )
demoApp. skaffa sig ( '/' , ( req, res ) => {
res. json ( {
namn : 'Linuxhint-artikel om CORS' ,
språk : 'Node.js' ,
Ansökan : 'corsApp' ,
ursprung : 'Cross Origin' ,
mellanprogram : 'CORS'
} )
} )
demoApp. lyssna ( 8080 , ( ) => {
trösta. logga ( `Server startade 'http://localhost:8080/' ` )
} )
demoApp. lyssna ( 3000 , ( ) => {
trösta. logga ( `Server startade 'http://localhost:8080/' ` )
} )

Utdata som genereras efter exekvering av ovanstående kod visar att nu ' Fel: lyssna EADDRINUSE: adressen används redan ' problemet är löst:

Lösning 2: Stoppa de processer som körs på samma port

Ett annat sätt att lösa felet 'lyssna EADDRINUSE: adress som redan används' är genom att stoppa processerna som körs på den specifika porten som redan används. Detta kommer att göra porten inaktiv som kan nås av utvecklaren för att utföra specificerade uppgifter. Denna stoppprocess görs med hjälp av en extern modul som heter ' döda-port ”.

Till exempel, alla processer som körs på det angivna portnumret ' 8080 ' kommer att dödas med ' döda-port ' modul. Det finns två sätt att använda 'kill-port'-modulen och båda dessa metoder anges nedan:

Metod 1: Använd 'kill-port'-modulen efter installationen

den ' döda-port ”-modulen är en extern extern modul från tredje part och för att kunna använda denna modul i node.js-projektet. Denna modul måste laddas ner först genom att utföra följande kommando:

npm install kill - hamn - g

Bilden nedan visar slutförandet av installationen för ' döda-port ' variabel:

Efter installationen kan användaren avbryta tjänster för det nödvändiga portnumret. I vårt fall, tjänsterna med portnummer ' 8080 ” kommer att dödas via nedan angivna kommando:

döda - hamn -- hamn 8080

Utdata nedan bekräftar att alla tjänster för port ' 8080 'har dödats:

Metod 2: Använd 'kill-port'-modul utan installation

den ' döda-port '-modulen kan användas utan att gå igenom installationsprocessen genom att använda en ' npx ” paketlöpare. Till exempel, ' döda-port ”-modulen används för att döda angivna två portar med hjälp av kommandot ”npx”-paketlöpare som anges nedan:

npx döda - hamn 8080 9000

Utdata nedan visar att tjänsterna för specificerade portar ' 9000 ' och ' 8080 'har dödats:

Bonustips: Avinstallation av 'kill-port'-modulen

För att avinstallera ' döda-port ”-modul globalt från systemet, kör följande kommando:

npm uninstall kill - hamn - g

Lösning 3: Avsluta Node.js-tjänsterna på Windows

Om 'Fel: lyssna EADDRINUSE: adress som redan används' fortfarande kvarstår, döda alla som kör ' node.js '-tjänster antingen med GUI- eller CLI-metoden.

Använder CLI Approach

Tryck på ' Fönster '-knappen för att öppna sökfältet och ange ' CMD ” i sökrutan, från de genererade resultaten. Välj sedan ' Kommandotolken '-applikationen och tryck på ' Kör som administratör ' knapp:

Genom att välja alternativet kommer ett nytt fönster med kontrollprompt att visas, för att döda de för närvarande körande 'node.js'-tjänsterna i bakgrunden, kör följande kommando:

taskkill / F / IM-nod. ex

Den genererade utdata visar att 'node.js'-tjänsterna har avslutats:

Använder GUI Approach

För att döda de körande node.js-tjänsterna från systemet, öppna ' Aktivitetshanteraren genom att trycka på Ctrl + Shift + Esc ”-tangenter omedelbart. Efter att ha öppnat 'Task Manager', gå till ' Detaljer ' typ, välj ' node.exe ' tjänsten och tryck på ' Avsluta uppgift ”-knappen som finns längst ner till höger, som visas nedan:

Det handlar om att lösa 'Fel: lyssna EADDRINUSE: adress som redan används' i Node.js.

Slutsats

'Fel: lyssna EADDRINUSE: adress som redan används' uppstår när mer än en tjänst försöker använda en enda port samtidigt. För att lösa det bör användaren försöka använda ett annat portnummer eller döda tjänsterna som redan körs på det angivna portnumret med hjälp av ' döda-port ' modul. Om felet fortfarande inte är löst, döda alla som körs ' node.js ” från aktivitetshanteraren och starta om din applikation. Den här guiden har illustrerat möjliga lösningar för att lösa problemet 'Fel: lyssna EADDRINUSE: adress som redan används'.