Kā atrisināt “Kļūda: klausieties EADDRINUSE: adrese jau tiek izmantota”?

Ka Atrisinat Kluda Klausieties Eaddrinuse Adrese Jau Tiek Izmantota



Node.js ir izpildlaika vide, kas ļauj JavaScript valodā rakstītu kodu izpildīt tīmekļa lapā vai lokālajā serverī. Tā ir viena vītnes vide, un tai ir asinhrons raksturs. Tas piedāvā dažādus iebūvētus un ārējos moduļus, kurus var izmantot dažādu darbību veikšanai, piemēram, HTTP pieprasījumu nosūtīšanai pa serveri. Mijiedarbojoties ar dažādiem lokālajiem serveriem, pastāv iespēja iegūt vairākas kļūdas, kuras tiek atrisinātas, ievērojot īpašus norādījumus.

Šajā rokasgrāmatā ir izskaidroti iespējamie labojumi “klausieties EADDRINUSE: adrese jau tiek lietota”, aptverot tālāk norādītās sadaļas.

Kā atrisināt “Kļūda: klausieties EADDRINUSE: adrese jau tiek izmantota”?

' Kļūda: klausieties EADDRINUSE: adrese jau tiek izmantota ” rodas, ja vairāk nekā viena lietojumprogramma vai uzdevums mēģina piekļūt vienam portam. Šī kļūda var rasties testēšanas vai izstrādes fāzē. Piemēram, labākai izpratnei tiks ģenerēta iepriekš minētā kļūda:







konst expressObj = pieprasīt ( 'izteikt' )
konst demoApp = expressObj ( )
demoApp. gūt ( '/' , ( req, res ) => {
res. json ( {
nosaukums : 'Linuxhint raksts par CORS' ,
valodu : 'Node.js' ,
pieteikumu : 'corsApp' ,
izcelsmi : 'Krusta izcelsme' ,
starpprogrammatūra : 'CORS'
} )
} )
demoApp. klausies ( 8080 , ( ) => {
konsole. žurnāls ( `Serveris tika ieslēgts 'http://localhost:8080/' ` )
} )
demoApp. klausies ( 8080 , ( ) => {
konsole. žurnāls ( `Serveris tika ieslēgts 'http://localhost:8080/' ` )
} )

Iepriekš minētais koda fragments darbojas šādi:



  • Vispirms importējiet ' izteikt ' moduli un saglabājiet tā objektu jaunā mainīgajā' expressObj ”. Izmantojiet šo mainīgo kā konstruktoru, lai izveidotu jaunu ekspreslietojumprogrammu ar nosaukumu ' demoApp ”.
  • Pēc tam izveidojiet GET pieprasījumu, izmantojot “ gūt() ' metodi un iestatiet sākumlapu kā saknes apdarinātāju, nododot ' / ” kā pirmais parametrs. Otrais parametrs ir anonīma atzvanīšanas funkcija, kas nosūta “ JSON ' dati kā atbilde, izmantojot ' json() ” metode.
  • Pēc tam ļaujiet šai programmai darboties, izmantojot to pašu porta numuru “ 8080 ' divas reizes. Šī viena un tā paša porta izpilde divas reizes ģenerē minēto kļūdu.

Ģenerētā izvade pēc iepriekš minētā koda apkopošanas parāda kļūdu “Kļūda: klausieties EADDRINUSE: adrese jau tiek lietota”:







Galvenokārt ir divi risinājumi, lai atrisinātu kļūdu, kas radusies iepriekš minētajā izvadē, proti, mainīt portu numurus vai apturēt kādu no darbojošajiem procesiem. Bet ir arī vairāki citi labojumi, kas netieši atrisina “ Kļūda: klausieties EADDRINUSE: adrese jau tiek izmantota ” kļūda. Šie risinājumi kopā ar praktiskiem demonstrējumiem ir norādīti zemāk:

1. risinājums: palaidiet procesus dažādos portos

Ieteicamākais risinājums minētajai kļūdai ir identificēt portu numurus, kuros darbojas abi pakalpojumi, piemēram, mūsu gadījumā tas ir ' 8080 ”. Pēc tam nejauši izvēlieties vienu pakalpojumu un mainiet tā porta numuru, lai pakalpojumi klausītos localhost, bet ar dažādiem porta numuriem. Mūsu kods pēc apspriestās modifikācijas ir parādīts zemāk:



konst expressObj = pieprasīt ( 'izteikt' )
konst demoApp = expressObj ( )
demoApp. gūt ( '/' , ( req, res ) => {
res. json ( {
nosaukums : 'Linuxhint raksts par CORS' ,
valodu : 'Node.js' ,
pieteikumu : 'corsApp' ,
izcelsmi : 'Krusta izcelsme' ,
starpprogrammatūra : 'CORS'
} )
} )
demoApp. klausies ( 8080 , ( ) => {
konsole. žurnāls ( `Serveris tika ieslēgts 'http://localhost:8080/' ` )
} )
demoApp. klausies ( 3000 , ( ) => {
konsole. žurnāls ( `Serveris tika ieslēgts 'http://localhost:8080/' ` )
} )

Izvade, kas ģenerēta pēc iepriekš minētā koda izpildes, parāda, ka tagad “ Kļūda: klausieties EADDRINUSE: adrese jau tiek izmantota ” problēma ir atrisināta:

2. risinājums: apturiet procesus, kas darbojas tajā pašā portā

Vēl viens veids, kā novērst kļūdu “klausieties EADDRINUSE: adrese jau tiek lietota”, ir apturēt procesus, kas darbojas konkrētajā portā, kas jau tiek izmantots. Tas padarīs portu dīkstāvē, kuram izstrādātājs var piekļūt, lai veiktu noteiktus uzdevumus. Šis apturēšanas process tiek veikts, izmantojot ārēju moduli ar nosaukumu ' kill-port ”.

Piemēram, visi procesi, kas darbojas norādītajā porta numurā ' 8080 ' tiks nogalināti, izmantojot ' kill-port ” modulis. Ir divi veidi, kā izmantot “kill-port” moduli, un abas šīs pieejas ir norādītas tālāk:

1. metode: pēc instalēšanas izmantojiet 'kill-port' moduli

' kill-port ” modulis ir trešās puses ārējais modulis un lai šo moduli izmantotu projektā node.js. Šis modulis vispirms ir jālejupielādē, izpildot tālāk norādīto komandu:

npm install kill - osta - g

Zemāk redzamajā attēlā parādīta instalēšanas pabeigšana kill-port ” mainīgais:

Pēc instalēšanas lietotājs var nogalināt pakalpojumus par nepieciešamo porta numuru. Mūsu gadījumā porta numura pakalpojumi 8080 ” tiks nogalināti, izmantojot tālāk norādīto komandu:

nogalināt - osta -- osta 8080

Zemāk redzamā izvade apstiprina, ka visi pakalpojumi portam ' 8080 ” ir nogalināti:

2. metode: izmantojiet “kill-port” moduli bez instalēšanas

' kill-port ” moduli var izmantot, neveicot instalēšanas procesu, izmantojot „ npx ” iepakojuma skrējējs. Piemēram, “ kill-port ” modulis tiek izmantots, lai iznīcinātu norādītos divus portus, izmantojot tālāk norādīto komandu “npx” pakotnes palaidējs:

npx nogalināt - osta 8080 9000

Zemāk redzamā izvade parāda, ka pakalpojumi norādītajiem portiem ' 9000 ' un ' 8080 ” ir nogalināti:

Bonusa padoms: “kill-port” moduļa atinstalēšana

Lai atinstalētu ' kill-port ” modulis globāli no sistēmas izpildiet tālāk norādīto komandu:

npm atinstalēt kill - osta - g

3. risinājums: pārtrauciet Node.js pakalpojumu darbību operētājsistēmā Windows

Ja “Kļūda: klausieties EADDRINUSE: adrese jau tiek lietota” joprojām pastāv, tad izslēdziet visu, kas darbojas. node.js ” pakalpojumus, izmantojot GUI vai CLI pieeju.

Izmantojot CLI pieeju

Nospiediet “ Logs ”, lai atvērtu meklēšanas joslu un ievadītu CMD ” meklēšanas lodziņā no ģenerētajiem rezultātiem. Pēc tam atlasiet “ Komandu uzvedne ” lietojumprogrammu un nospiediet „ Izpildīt kā administratoram ” poga:

Atlasot opciju, parādīsies jauns vadības uzvednes logs, lai fonā iznīcinātu pašlaik darbojošos “node.js” pakalpojumus, izpildiet tālāk norādīto komandu:

taskkill / F / IM mezgls. exe

Ģenerētā izvade parāda, ka “node.js” pakalpojumi ir pārtraukti:

Izmantojot GUI pieeju

Lai izslēgtu sistēmas darbību node.js pakalpojumus, atveriet ' Uzdevumu pārvaldnieks ', noklikšķinot uz ' Ctrl + Shift + Esc ” taustiņi nekavējoties. Pēc “Uzdevumu pārvaldnieka” atvēršanas pārejiet uz “ Sīkāka informācija ' tipa, izvēlieties ' node.exe pakalpojumu un nospiediet pogu Beigt uzdevumu ” poga atrodas apakšējā labajā virzienā, kā parādīts zemāk:

Tas viss attiecas uz problēmas “Kļūda: klausieties EADDRINUSE: adrese jau tiek izmantota” atrisināšanu vietnē Node.js.

Secinājums

“Kļūda: klausieties EADDRINUSE: adrese jau tiek lietota” rodas, ja vairāk nekā viens pakalpojums mēģina vienlaikus izmantot vienu portu. Lai to atrisinātu, lietotājam jāmēģina izmantot citu porta numuru vai iznīcināt pakalpojumus, kas jau darbojas ar norādīto porta numuru, izmantojot “ kill-port ” modulis. Ja kļūda joprojām nav novērsta, izslēdziet visu, kas darbojas ' node.js ” pakalpojumus no uzdevumu pārvaldnieka un restartējiet lietojumprogrammu. Šajā rokasgrāmatā ir parādīti iespējamie risinājumi, lai atrisinātu problēmu “Kļūda: klausieties EADDRINUSE: adrese jau tiek lietota”.