Š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”?
- 1. risinājums: palaidiet procesus dažādos portos
- 2. risinājums: apturiet procesus, kas darbojas tajā pašā portā
- 1. metode: pēc instalēšanas izmantojiet 'kill-port' moduli
- 2. metode: izmantojiet “kill-port” moduli bez instalēšanas
- Bonusa padoms: “kill-port” moduļa atinstalēšana
- 3. risinājums: pārtrauciet Node.js pakalpojumu darbību operētājsistēmā Windows
- Izmantojot CLI pieeju
- Izmantojot GUI pieeju
- Secinājums
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 - gZemā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 8080Zemā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 9000Zemā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”.