Πώς να επιλύσετε το 'Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη';

Pos Na Epilysete To Sphalma Akouste Eaddrinuse Dieuthynse Pou Chresimopoieitai Ede



Το Node.js είναι ένα περιβάλλον χρόνου εκτέλεσης που επιτρέπει στον κώδικα γραμμένο σε γλώσσα JavaScript να εκτελείται μέσω της ιστοσελίδας ή του τοπικού διακομιστή. Είναι ένα περιβάλλον μονού νήματος και έχει ασύγχρονο χαρακτήρα. Προσφέρει διάφορες ενσωματωμένες και εξωτερικές μονάδες που μπορούν να χρησιμοποιηθούν για την εκτέλεση διαφόρων λειτουργιών όπως η αποστολή αιτημάτων HTTP μέσω του διακομιστή. Κατά την αλληλεπίδραση με διάφορους τοπικούς διακομιστές, υπάρχει η πιθανότητα να λάβετε πολλά σφάλματα τα οποία επιλύονται ακολουθώντας συγκεκριμένους οδηγούς.

Αυτός ο οδηγός εξηγεί τις πιθανές επιδιορθώσεις για 'ακρόαση EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη' καλύπτοντας τις παρακάτω ενότητες:

Πώς να επιλύσετε το 'Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη';

Ο ' Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη ” προκύπτει όταν περισσότερες από μία εφαρμογές ή εργασίες προσπαθούν να αποκτήσουν πρόσβαση στην ίδια θύρα. Αυτό το σφάλμα μπορεί να προκύψει κατά τη διάρκεια των φάσεων δοκιμής ή ανάπτυξης. Για παράδειγμα, το προαναφερθέν σφάλμα θα δημιουργηθεί για καλύτερη κατανόηση:







συνθ expressObj = απαιτώ ( 'εξπρές' )
συνθ demoApp = expressObj ( )
demoApp. παίρνω ( '/' , ( απαίτηση, ανάλογ ) => {
res. json ( {
όνομα : «Άρθρο Linux για το CORS» ,
Γλώσσα : 'Node.js' ,
εφαρμογή : 'corsApp' ,
προέλευση : «Διασταυρούμενη καταγωγή» ,
ενδιάμεσο λογισμικό : 'CORS'
} )
} )
demoApp. ακούω ( 8080 , ( ) => {
κονσόλα. κούτσουρο ( `Ο διακομιστής ξεκίνησε 'http://localhost:8080/' ` )
} )
demoApp. ακούω ( 8080 , ( ) => {
κονσόλα. κούτσουρο ( `Ο διακομιστής ξεκίνησε 'http://localhost:8080/' ` )
} )

Το παραπάνω απόσπασμα κώδικα λειτουργεί ως εξής:



  • Πρώτα, εισαγάγετε το ' εξπρές ' module και αποθηκεύστε το αντικείμενό της σε μια νέα μεταβλητή ' expressObj '. Χρησιμοποιήστε αυτήν τη μεταβλητή ως κατασκευαστή για να δημιουργήσετε μια νέα εφαρμογή express με το όνομα ' demoApp '.
  • Στη συνέχεια, δημιουργήστε ένα αίτημα GET χρησιμοποιώντας το ' παίρνω() ' μέθοδος και ορίστε την αρχική σελίδα ως ριζικό χειριστή περνώντας ' / ” ως πρώτη παράμετρος. Η δεύτερη παράμετρος είναι μια ανώνυμη συνάρτηση επανάκλησης που στέλνει ' JSON δεδομένα ως απάντηση με τη χρήση του json() 'μέθοδος.
  • Μετά από αυτό, κάντε αυτήν την εφαρμογή να εκτελείται στον ίδιο αριθμό θύρας ' 8080 ' δύο φορές. Αυτή η εκτέλεση της ίδιας θύρας δύο φορές δημιουργεί το αναφερόμενο σφάλμα.

Η έξοδος που δημιουργείται μετά τη μεταγλώττιση του παραπάνω κώδικα δείχνει την εμφάνιση ενός σφάλματος 'Σφάλμα: ακούστε EADDRINUSE: διεύθυνση ήδη σε χρήση':







Υπάρχουν κυρίως δύο λύσεις για την επίλυση του σφάλματος που παρουσιάστηκε στην παραπάνω έξοδο, δηλαδή αλλαγή των αριθμών θυρών ή διακοπή μιας από τις διεργασίες που εκτελούνται. Υπάρχουν όμως πολλές άλλες επιδιορθώσεις που επιλύουν έμμεσα το ' Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη ' λάθος. Αυτές οι λύσεις μαζί με πρακτικές επιδείξεις αναφέρονται παρακάτω:

Λύση 1: Εκτέλεση διεργασιών σε διαφορετικές θύρες

Η πιο προτεινόμενη λύση για το αναφερόμενο σφάλμα είναι να προσδιορίσετε τους αριθμούς θυρών στις οποίες εκτελούνται και οι δύο υπηρεσίες όπως στην περίπτωσή μας. 8080 '. Στη συνέχεια, επιλέξτε μια υπηρεσία τυχαία και τροποποιήστε τον αριθμό θύρας της για να κάνετε τις υπηρεσίες να ακούνε στο localhost αλλά με διαφορετικούς αριθμούς θύρας. Ο κώδικάς μας μετά την τροποποίηση που συζητήθηκε φαίνεται παρακάτω:



συνθ expressObj = απαιτώ ( 'εξπρές' )
συνθ demoApp = expressObj ( )
demoApp. παίρνω ( '/' , ( απαίτηση, ανάλογ ) => {
res. json ( {
όνομα : «Άρθρο Linux για το CORS» ,
Γλώσσα : 'Node.js' ,
εφαρμογή : 'corsApp' ,
προέλευση : «Διασταυρούμενη καταγωγή» ,
ενδιάμεσο λογισμικό : 'CORS'
} )
} )
demoApp. ακούω ( 8080 , ( ) => {
κονσόλα. κούτσουρο ( `Ο διακομιστής ξεκίνησε 'http://localhost:8080/' ` )
} )
demoApp. ακούω ( 3000 , ( ) => {
κονσόλα. κούτσουρο ( `Ο διακομιστής ξεκίνησε 'http://localhost:8080/' ` )
} )

Η έξοδος που δημιουργήθηκε μετά την εκτέλεση του παραπάνω κώδικα δείχνει ότι τώρα το ' Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη » επιλύθηκε το θέμα:

Λύση 2: Διακοπή των διεργασιών που εκτελούνται στην ίδια θύρα

Ένας άλλος τρόπος για να επιλύσετε το σφάλμα 'ακρόαση EADDRINUSE: διεύθυνση ήδη σε χρήση' είναι η διακοπή των διεργασιών που εκτελούνται στη συγκεκριμένη θύρα που χρησιμοποιείται ήδη. Αυτό θα κάνει τη θύρα σε αδράνεια, στην οποία μπορεί να έχει πρόσβαση ο προγραμματιστής για να εκτελέσει συγκεκριμένες εργασίες. Αυτή η διαδικασία διακοπής γίνεται με τη βοήθεια μιας εξωτερικής μονάδας που ονομάζεται ' kill-port '.

Για παράδειγμα, όλες οι διεργασίες που εκτελούνται στον καθορισμένο αριθμό θύρας ' 8080 'θα σκοτωθούν χρησιμοποιώντας το ' kill-port ενότητα. Υπάρχουν δύο τρόποι χρήσης της ενότητας 'kill-port' και και οι δύο αυτές προσεγγίσεις αναφέρονται παρακάτω:

Μέθοδος 1: Χρησιμοποιήστε τη μονάδα 'kill-port' μετά την εγκατάσταση

Ο ' kill-port Η ενότητα είναι μια εξωτερική λειτουργική μονάδα τρίτου κατασκευαστή και για να χρησιμοποιηθεί αυτή η λειτουργική μονάδα μέσα στο έργο node.js. Αυτή η ενότητα πρέπει να ληφθεί πρώτα εκτελώντας την παρακάτω εντολή:

npm εγκατάσταση kill - Λιμάνι - σολ

Το παρακάτω σχήμα δείχνει την ολοκλήρωση της εγκατάστασης για το « kill-port ' μεταβλητή:

Μετά την εγκατάσταση, ο χρήστης μπορεί να σκοτώσει τις υπηρεσίες για τον απαιτούμενο αριθμό θύρας. Στην περίπτωσή μας, οι υπηρεσίες του αριθμού λιμένα ' 8080 ” πρόκειται να σκοτωθούν μέσω της παρακάτω εντολής:

σκοτώνω - Λιμάνι -- Λιμάνι 8080

Η παρακάτω έξοδος επιβεβαιώνει ότι όλες οι υπηρεσίες για τη θύρα ' 8080 » έχουν σκοτωθεί:

Μέθοδος 2: Χρησιμοποιήστε τη μονάδα 'kill-port' χωρίς εγκατάσταση

Ο ' kill-port Η ενότητα μπορεί να χρησιμοποιηθεί χωρίς να περάσει η διαδικασία εγκατάστασης με τη χρήση ενός npx ” δρομέας πακέτων. Για παράδειγμα, το « kill-port Η μονάδα χρησιμοποιείται για να σκοτώσει δύο καθορισμένες θύρες χρησιμοποιώντας την εντολή εκτέλεσης πακέτου 'npx' που αναφέρεται παρακάτω:

npx kill - Λιμάνι 8080 9000

Η παρακάτω έξοδος δείχνει ότι οι υπηρεσίες για καθορισμένες θύρες ' 9000 ' και ' 8080 » έχουν σκοτωθεί:

Συμβουλή μπόνους: Απεγκατάσταση της μονάδας 'kill-port'.

Για να απεγκαταστήσετε το ' kill-port ' module καθολικά από το σύστημα εκτελέστε την παρακάτω εντολή:

npm απεγκατάσταση kill - Λιμάνι - σολ

Λύση 3: Τερματίστε τις Υπηρεσίες Node.js στα Windows

Εάν το 'Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη' εξακολουθεί να υφίσταται, τότε σκοτώστε όλα τα τρέχοντα ' node.js υπηρεσίες είτε με χρήση GUI ή CLI.

Χρήση της προσέγγισης CLI

Πάτα το ' Παράθυρο κουμπί ' για να ανοίξετε τη γραμμή αναζήτησης και να εισαγάγετε το ' CMD ” μέσα στο πλαίσιο αναζήτησης, από τα αποτελέσματα που δημιουργούνται. Στη συνέχεια, επιλέξτε το ' Γραμμή εντολών ' εφαρμογή και πατήστε το ' Εκτελέστε ως διαχειριστής Κουμπί ”:

Επιλέγοντας την επιλογή, θα εμφανιστεί ένα νέο παράθυρο του Control Prompt, για να σκοτώσετε τις τρέχουσες υπηρεσίες 'node.js' που εκτελούνται στο παρασκήνιο, εκτελέστε την παρακάτω εντολή:

taskkill / φά / Κόμβος άμεσων μηνυμάτων. exe

Η παραγόμενη έξοδος δείχνει ότι οι υπηρεσίες 'node.js' έχουν τερματιστεί:

Χρήση GUI Approach

Για να σκοτώσετε τις υπηρεσίες node.js που εκτελούνται από το σύστημα, ανοίξτε το ' Διαχειριστής εργασιών ' πατώντας το ' Ctrl + Shift + Esc ” πλήκτρα αμέσως. Αφού ανοίξετε τη 'Διαχείριση εργασιών', μεταβείτε στο ' Λεπτομέριες πληκτρολογήστε, επιλέξτε το node.exe ' service, και πατήστε το ' Τέλος εργασίας Το κουμπί ” βρίσκεται στην κάτω δεξιά κατεύθυνση, όπως φαίνεται παρακάτω:

Αυτό αφορά την επίλυση του 'Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη' στο Node.js.

συμπέρασμα

Το 'Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη' εμφανίζεται όταν περισσότερες από μία υπηρεσίες προσπαθούν να χρησιμοποιήσουν μία μόνο θύρα ταυτόχρονα. Για να το επιλύσετε, ο χρήστης θα πρέπει να προσπαθήσει να χρησιμοποιήσει έναν διαφορετικό αριθμό θύρας ή να σκοτώσει τις υπηρεσίες που εκτελούνται ήδη στον καθορισμένο αριθμό θύρας χρησιμοποιώντας το ' kill-port ενότητα. Εάν το σφάλμα εξακολουθεί να μην έχει επιλυθεί, σκοτώστε όλα τα τρέχοντα ' node.js ” υπηρεσίες από τη διαχείριση εργασιών και επανεκκινήστε την εφαρμογή σας. Αυτός ο οδηγός επεξηγεί τις πιθανές λύσεις για την επίλυση του ζητήματος 'Σφάλμα: ακούστε EADDRINUSE: διεύθυνση που χρησιμοποιείται ήδη'.