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”?
- Soluzione 1: eseguire processi su porte diverse
- Soluzione 2: arrestare i processi in esecuzione sulla stessa porta
- Metodo 1: utilizzare il modulo “kill-port” dopo l'installazione
- Metodo 2: utilizzare il modulo “kill-port” senza installazione
- Suggerimento bonus: disinstallazione del modulo “kill-port”.
- Soluzione 3: terminare i servizi Node.js su Windows
- Utilizzo dell'approccio CLI
- Utilizzo dell'approccio GUI
- Conclusione
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 - GLa 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 8080L’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 9000L'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. exeL'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”.