Come risolvere “Errore: ascolta EADDRINUSE: indirizzo già in uso”?

Come Risolvere Errore Ascolta Eaddrinuse Indirizzo Gia In Uso



Node.js è un ambiente runtime che consente l'esecuzione del codice scritto in linguaggio JavaScript sulla pagina Web o sul server locale. È un ambiente a thread singolo e ha una natura asincrona. Offre vari moduli integrati ed esterni che possono essere utilizzati per eseguire varie operazioni come l'invio di richieste HTTP sul server. Durante l'interazione con vari server locali è possibile che si verifichino più errori che vengono risolti seguendo guide specifiche.

Questa guida spiega le possibili soluzioni per 'ascolta EADDRINUSE: indirizzo già in uso' coprendo le sezioni seguenti:

Come risolvere “Errore: ascolta EADDRINUSE: indirizzo già in uso”?

IL ' Errore: ascolta EADDRINUSE: indirizzo già in uso ' si verifica quando più di un'applicazione o attività tenta di accedere alla stessa porta. Questo errore può essere generato durante le fasi di test o di sviluppo. Ad esempio, verrà generato l'errore sopra menzionato per una migliore comprensione:







cost esprimereObj = richiedere ( 'esprimere' )
cost demoApp = esprimereObj ( )
demoApp. Ottenere ( '/' , ( richiedi, ris ) => {
ris. json ( {
nome : 'Articolo Linuxhint su CORS' ,
lingua : 'Node.js' ,
applicazione : 'corApp' ,
origine : 'Origine incrociata' ,
middleware : 'CORSO'
} )
} )
demoApp. Ascoltare ( 8080 , ( ) => {
consolle. tronco d'albero ( `Server avviato 'http://localhost:8080/' ` )
} )
demoApp. Ascoltare ( 8080 , ( ) => {
consolle. tronco d'albero ( `Server avviato 'http://localhost:8080/' ` )
} )

Lo snippet di codice sopra funziona in questo modo:



  • Innanzitutto, importa il ' esprimere ' modulo e memorizza il suo oggetto in una nuova variabile ' esprimereObj ”. Utilizza questa variabile come costruttore per creare una nuova applicazione espressa denominata ' demoApp ”.
  • Successivamente, crea una richiesta GET utilizzando il comando ' Ottenere() ' e imposta la home page come gestore root passando ' / ' come primo parametro. Il secondo parametro è una funzione di callback anonima che invia ' JSON ' dati come risposta mediante l'utilizzo del ' json() ' metodo.
  • Successivamente, fai in modo che l'app venga eseguita sullo stesso numero di porta di ' 8080 ' due volte. Questa esecuzione della stessa porta due volte genera l'errore menzionato.

L'output generato dopo la compilazione del codice sopra riportato mostra il verificarsi di un errore “Errore: ascolta EADDRINUSE: indirizzo già in uso”:







Esistono principalmente due soluzioni per risolvere l'errore che si è verificato nell'output precedente, ovvero modificare i numeri di porta o interrompere uno dei processi in esecuzione. Ma ci sono anche molte altre soluzioni che risolvono indirettamente il ' Errore: ascolta EADDRINUSE: indirizzo già in uso 'errore. Queste soluzioni insieme alle dimostrazioni pratiche sono riportate di seguito:

Soluzione 1: eseguire processi su porte diverse

La soluzione più consigliata per l'errore menzionato è identificare i numeri di porta su cui sono in esecuzione entrambi i servizi, come nel nostro caso è ' 8080 ”. Quindi, scegli un servizio in modo casuale e modifica il suo numero di porta per fare in modo che i servizi siano in ascolto su localhost ma con numeri di porta diversi. Il nostro codice dopo la modifica discussa è mostrato di seguito:



cost esprimereObj = richiedere ( 'esprimere' )
cost demoApp = esprimereObj ( )
demoApp. Ottenere ( '/' , ( richiedi, ris ) => {
ris. json ( {
nome : 'Articolo Linuxhint su CORS' ,
lingua : 'Node.js' ,
applicazione : 'corApp' ,
origine : 'Origine incrociata' ,
middleware : 'CORSO'
} )
} )
demoApp. Ascoltare ( 8080 , ( ) => {
consolle. tronco d'albero ( `Server avviato 'http://localhost:8080/' ` )
} )
demoApp. Ascoltare ( 3000 , ( ) => {
consolle. tronco d'albero ( `Server avviato 'http://localhost:8080/' ` )
} )

L'output generato dopo l'esecuzione del codice precedente mostra che ora il ' Errore: ascolta EADDRINUSE: indirizzo già in uso ' il problema è risolto:

Soluzione 2: arrestare i processi in esecuzione sulla stessa porta

Un altro modo per risolvere l'errore 'ascolta EADDRINUSE: indirizzo già in uso' è arrestare i processi in esecuzione sulla porta specifica già in uso. Ciò renderà inattiva la porta a cui lo sviluppatore può accedere per eseguire attività specificate. Questo processo di arresto viene eseguito con l'aiuto di un modulo esterno denominato ' kill-porto ”.

Ad esempio, tutti i processi in esecuzione sul numero di porta specificato “ 8080 ' verranno uccisi usando il ' kill-porto ' modulo. Esistono due modi per utilizzare il modulo 'kill-port' ed entrambi gli approcci sono indicati di seguito:

Metodo 1: utilizzare il modulo “kill-port” dopo l'installazione

IL ' kill-porto ' Il modulo è un modulo esterno di terze parti e per poter utilizzare questo modulo all'interno del progetto node.js. Questo modulo deve essere prima scaricato eseguendo il comando indicato di seguito:

npm installa kill - porta - G

La figura seguente mostra il completamento dell'installazione per il “ kill-porto 'variabile:

Dopo l'installazione, l'utente può interrompere i servizi per il numero di porta richiesto. Nel nostro caso, i servizi del numero di porta “ 8080 verranno uccisi tramite il comando indicato di seguito:

uccisione - porta -- porta 8080

L’output seguente conferma che tutti i servizi per il porto “ 8080 ' sono stati uccisi:

Metodo 2: utilizzare il modulo “kill-port” senza installazione

IL ' kill-porto Il modulo ' può essere utilizzato senza passare attraverso il processo di installazione utilizzando un modulo ' npx 'corridore di pacchi. Ad esempio, il “ kill-porto ' viene utilizzato per uccidere due porte specificate utilizzando il comando del runner del pacchetto 'npx' indicato di seguito:

npx uccidi - porta 8080 9000

L'output seguente mostra che i servizi per le porte specificate “ 9000 ' E ' 8080 ' sono stati uccisi:

Suggerimento bonus: disinstallazione del modulo “kill-port”.

Per disinstallare il “ kill-porto 'Il modulo a livello globale dal sistema esegue il comando indicato di seguito:

npm disinstalla kill - porta - G

Soluzione 3: terminare i servizi Node.js su Windows

Se l''Errore: ascolta EADDRINUSE: indirizzo già in uso' persiste ancora, quindi interrompi tutti quelli in esecuzione ' nodo.js 'servizi utilizzando l'approccio GUI o CLI.

Utilizzo dell'approccio CLI

Premi il ' Finestra ' per aprire la barra di ricerca e inserire il ' CMD ' all'interno della casella di ricerca, dai risultati generati. Quindi, seleziona ' Prompt dei comandi ', quindi premere il pulsante ' Esegui come amministratore pulsante ':

Selezionando l'opzione, verrà visualizzata una nuova finestra del prompt di controllo, per terminare i servizi 'node.js' attualmente in esecuzione in background, eseguire il comando seguente:

taskkill / F / Nodo IM. exe

L'output generato mostra che i servizi 'node.js' sono stati terminati:

Utilizzo dell'approccio GUI

Per terminare i servizi node.js in esecuzione dal sistema, aprire il file ' Responsabile delle attività ' premendo il tasto ' Ctrl+Maiusc+Esc ' chiavi immediatamente. Dopo aver aperto il 'Task Manager', vai al ' Dettagli ', seleziona ' nodo.exe ' servizio e premi il pulsante ' Ultimo compito ' pulsante che risiede nella direzione in basso a destra, come mostrato di seguito:

Si tratta di risolvere l'errore 'Errore: ascolta EADDRINUSE: indirizzo già in uso' in Node.js.

Conclusione

L''Errore: ascolta EADDRINUSE: indirizzo già in uso' si verifica quando più di un servizio tenta di utilizzare una singola porta contemporaneamente. Per risolverlo, l'utente dovrebbe provare a utilizzare un numero di porta diverso o interrompere i servizi già in esecuzione sul numero di porta specificato utilizzando il comando ' kill-porto ' modulo. Se l’errore non viene ancora risolto, uccidi tutti quelli in esecuzione “ nodo.js ' servizi dal task manager e riavviare l'applicazione. In questa guida sono state illustrate le possibili soluzioni per risolvere il problema “Errore: ascolta EADDRINUSE: indirizzo già in uso”.