'त्रुटि: EADDRINUSE सुनें: पता पहले से ही उपयोग में है' का समाधान कैसे करें?

Truti Eaddrinuse Sunem Pata Pahale Se Hi Upayoga Mem Hai Ka Samadhana Kaise Karem



Node.js एक रनटाइम वातावरण है जो जावास्क्रिप्ट भाषा में लिखे गए कोड को वेबपेज या स्थानीय सर्वर पर निष्पादित करने की अनुमति देता है। यह एकल-थ्रेडेड वातावरण है और इसकी प्रकृति अतुल्यकालिक है। यह विभिन्न अंतर्निहित और बाहरी मॉड्यूल प्रदान करता है जिनका उपयोग सर्वर पर HTTP अनुरोध भेजने जैसे विभिन्न ऑपरेशन करने के लिए किया जा सकता है। विभिन्न स्थानीय सर्वरों के साथ इंटरैक्ट करते समय कई त्रुटियां होने की संभावना होती है, जिन्हें विशिष्ट दिशानिर्देशों का पालन करके हल किया जाता है।

यह मार्गदर्शिका नीचे दिए गए अनुभागों को कवर करके 'सुनो EADDRINUSE: पता पहले से ही उपयोग में है' के संभावित समाधान बताती है:

'त्रुटि: EADDRINUSE सुनें: पता पहले से ही उपयोग में है' का समाधान कैसे करें?

त्रुटि: सुनो EADDRINUSE: पता पहले से ही उपयोग में है 'तब उत्पन्न होता है जब एक से अधिक एप्लिकेशन या कार्य एक ही पोर्ट तक पहुंचने का प्रयास करते हैं। यह त्रुटि परीक्षण या विकास चरणों के दौरान सामने आ सकती है। उदाहरण के लिए, बेहतर समझ के लिए उपर्युक्त त्रुटि उत्पन्न होने वाली है:







कॉन्स्ट एक्सप्रेसओब्ज = ज़रूरत होना ( 'अभिव्यक्त करना' )
कॉन्स्ट डेमोएप = एक्सप्रेसओब्ज ( )
डेमोएप. पाना ( '/' , ( अनुरोध, रेस ) => {
रेस. json ( {
नाम : 'कोरस पर लिनक्सहिंट आलेख' ,
भाषा : 'नोड.जेएस' ,
आवेदन : 'कोर्सऐप' ,
मूल : 'क्रॉस ओरिजिन' ,
मध्यस्थ : 'कोर्स'
} )
} )
डेमोएप. सुनना ( 8080 , ( ) => {
सांत्वना देना। लकड़ी का लट्ठा ( `सर्वर चालू हो गया 'http://localhost:8080/' ` )
} )
डेमोएप. सुनना ( 8080 , ( ) => {
सांत्वना देना। लकड़ी का लट्ठा ( `सर्वर चालू हो गया 'http://localhost:8080/' ` )
} )

उपरोक्त कोड स्निपेट इस प्रकार काम करता है:



  • सबसे पहले, 'आयात करें' अभिव्यक्त करना 'मॉड्यूल और उसके ऑब्जेक्ट को एक नए वेरिएबल में संग्रहीत करें' एक्सप्रेसओब्ज ”। 'नाम का एक नया एक्सप्रेस एप्लिकेशन बनाने के लिए इस वेरिएबल का कंस्ट्रक्टर के रूप में उपयोग करें डेमोएप ”।
  • इसके बाद, ' का उपयोग करके एक GET अनुरोध बनाएं पाना() ' विधि और होम पेज को रूट हैंडलर के रूप में सेट करें ' / 'पहले पैरामीटर के रूप में। दूसरा पैरामीटर एक अनाम कॉलबैक फ़ंक्शन है जो 'भेजता है' JSON 'के उपयोग द्वारा प्रतिक्रिया के रूप में डेटा' जेएसओएन() ' तरीका।
  • उसके बाद, उस ऐप को 'के समान पोर्ट नंबर पर निष्पादित करें' 8080 ' दो बार। एक ही पोर्ट का दो बार निष्पादन उल्लिखित त्रुटि उत्पन्न करता है।

उपरोक्त कोड के संकलन के बाद उत्पन्न आउटपुट एक 'त्रुटि: सुनो EADDRINUSE: पता पहले से ही उपयोग में है' त्रुटि की घटना को दर्शाता है:







उपरोक्त आउटपुट में हुई त्रुटि को हल करने के लिए मुख्य रूप से दो समाधान हैं जो पोर्ट नंबर को बदलना या चल रही प्रक्रियाओं में से एक को रोकना है। लेकिन कई अन्य सुधार भी हैं जो अप्रत्यक्ष रूप से ' त्रुटि: सुनो EADDRINUSE: पता पहले से ही उपयोग में है ' गलती। व्यावहारिक प्रदर्शनों के साथ ये समाधान नीचे दिए गए हैं:

समाधान 1: विभिन्न बंदरगाहों पर प्रक्रियाएँ चलाएँ

उल्लिखित त्रुटि के लिए सबसे अनुशंसित समाधान उन पोर्ट नंबरों की पहचान करना है जिन पर दोनों सेवाएं चल रही हैं जैसे कि हमारे मामले में यह है ' 8080 ”। फिर, एक सेवा को बेतरतीब ढंग से चुनें और सेवाओं को लोकलहोस्ट पर अलग-अलग पोर्ट नंबरों के साथ सुनने के लिए उसके पोर्ट नंबर को संशोधित करें। चर्चा किए गए संशोधन के बाद हमारा कोड नीचे दिखाया गया है:



कॉन्स्ट एक्सप्रेसओब्ज = ज़रूरत होना ( 'अभिव्यक्त करना' )
कॉन्स्ट डेमोएप = एक्सप्रेसओब्ज ( )
डेमोएप. पाना ( '/' , ( अनुरोध, रेस ) => {
रेस. json ( {
नाम : 'लिनक्सहिंट लेख CORS पर' ,
भाषा : 'नोड.जेएस' ,
आवेदन : 'कोर्सऐप' ,
मूल : 'क्रॉस ओरिजिन' ,
मध्यस्थ : 'कोर्स'
} )
} )
डेमोएप. सुनना ( 8080 , ( ) => {
सांत्वना देना। लकड़ी का लट्ठा ( `सर्वर चालू हो गया 'http://localhost:8080/' ` )
} )
डेमोएप. सुनना ( 3000 , ( ) => {
सांत्वना देना। लकड़ी का लट्ठा ( `सर्वर चालू हो गया 'http://localhost:8080/' ` )
} )

उपरोक्त कोड को निष्पादित करने के बाद उत्पन्न आउटपुट से पता चलता है कि अब ' त्रुटि: सुनो EADDRINUSE: पता पहले से ही उपयोग में है 'समस्या हल हो गई है:

समाधान 2: एक ही पोर्ट पर चल रही प्रक्रियाओं को रोकना

'सुनो EADDRINUSE: पता पहले से ही उपयोग में है' त्रुटि को हल करने का दूसरा तरीका पहले से उपयोग में आने वाले विशिष्ट पोर्ट पर चल रही प्रक्रियाओं को रोकना है। इससे पोर्ट निष्क्रिय हो जाएगा जिसे डेवलपर द्वारा निर्दिष्ट कार्यों को करने के लिए एक्सेस किया जा सकता है। यह रोकने की प्रक्रिया '' नामक बाहरी मॉड्यूल की मदद से की जाती है। किल-पोर्ट ”।

उदाहरण के लिए, सभी प्रक्रियाएं जो निर्दिष्ट पोर्ट नंबर पर चल रही हैं 8080 'का उपयोग करके मारे जाने वाले हैं' किल-पोर्ट ' मापांक। 'किल-पोर्ट' मॉड्यूल का उपयोग करने के दो तरीके हैं और ये दोनों दृष्टिकोण नीचे बताए गए हैं:

विधि 1: इंस्टालेशन के बाद 'किल-पोर्ट' मॉड्यूल का उपयोग करें

किल-पोर्ट मॉड्यूल एक तृतीय-पक्ष बाहरी मॉड्यूल है और इस मॉड्यूल का उपयोग नोड.जेएस प्रोजेक्ट के अंदर करने के लिए किया जाता है। इस मॉड्यूल को पहले नीचे दिए गए कमांड को निष्पादित करके डाउनलोड करना होगा:

एनपीएम इंस्टाल किल - पत्तन - जी

नीचे दिया गया आंकड़ा 'के लिए इंस्टॉलेशन का पूरा होना दिखाता है' किल-पोर्ट ' चर:

इंस्टालेशन के बाद, उपयोगकर्ता आवश्यक पोर्ट नंबर के लिए सेवाओं को बंद कर सकता है। हमारे मामले में, पोर्ट नंबर की सेवाएं ' 8080 नीचे दिए गए आदेश के माध्यम से मारे जा रहे हैं:

मारना - पत्तन -- पत्तन 8080

नीचे दिया गया आउटपुट पुष्टि करता है कि पोर्ट के लिए सभी सेवाएँ ' 8080 ' मारे गए हैं:

विधि 2: इंस्टालेशन के बिना 'किल-पोर्ट' मॉड्यूल का उपयोग करें

किल-पोर्ट 'मॉड्यूल का उपयोग' के उपयोग द्वारा इंस्टॉलेशन प्रक्रिया से गुजरे बिना किया जा सकता है एनपीएक्स पैकेज धावक। उदाहरण के लिए, ' किल-पोर्ट मॉड्यूल का उपयोग नीचे दिए गए 'एनपीएक्स' पैकेज रनर कमांड का उपयोग करके निर्दिष्ट दो बंदरगाहों को मारने के लिए किया जा रहा है:

एनपीएक्स मार डालो - पत्तन 8080 9000

नीचे दिए गए आउटपुट से पता चलता है कि निर्दिष्ट पोर्ट के लिए सेवाएँ ' 9000 ' और ' 8080 ' मारे गए हैं:

बोनस टिप: 'किल-पोर्ट' मॉड्यूल की स्थापना रद्द करें

अनइंस्टॉल करने के लिए ' किल-पोर्ट सिस्टम से विश्व स्तर पर मॉड्यूल नीचे दिए गए कमांड को निष्पादित करता है:

एनपीएम अनइंस्टॉल किल - पत्तन - जी

समाधान 3: विंडोज़ पर Node.js सेवाएँ समाप्त करें

यदि 'त्रुटि: सुनो EADDRINUSE: पता पहले से ही उपयोग में है' अभी भी बनी रहती है, तो चल रहे सभी को मार दें। नोड.जे.एस “सेवाएँ या तो जीयूआई या सीएलआई दृष्टिकोण का उपयोग कर रही हैं।

सीएलआई दृष्टिकोण का उपयोग करना

दबाओ ' खिड़की खोज बार खोलने और ' दर्ज करने के लिए ' बटन अध्यक्ष एवं प्रबंध निदेशक खोज बॉक्स के अंदर, उत्पन्न परिणामों से। फिर, “चुनें” सही कमाण्ड 'एप्लिकेशन, और दबाएँ' व्यवस्थापक के रूप में चलाएं ' बटन:

विकल्प का चयन करने पर, कंट्रोल प्रॉम्प्ट की एक नई विंडो दिखाई देगी, पृष्ठभूमि में वर्तमान में चल रही 'नोड.जेएस' सेवाओं को समाप्त करने के लिए, नीचे दिए गए आदेश को निष्पादित करें:

टास्ककिल / एफ / आईएम नोड. प्रोग्राम फ़ाइल

उत्पन्न आउटपुट से पता चलता है कि 'नोड.जेएस' सेवाएं समाप्त कर दी गई हैं:

जीयूआई दृष्टिकोण का उपयोग करना

सिस्टम से चल रही नोड.जेएस सेवाओं को ख़त्म करने के लिए, “खोलें” कार्य प्रबंधक 'मारकर' Ctrl + Shift + Esc ' तुरंत चाबियाँ. 'टास्क मैनेजर' खोलने के बाद, 'पर जाएँ' विवरण ' टाइप करें, ' चुनें नोड.exe 'सेवा, और' दबाएं कार्य का अंत करें नीचे दाईं ओर स्थित बटन, जैसा कि नीचे दिखाया गया है:

यह सब Node.js में 'त्रुटि: EADDRINUSE सुनें: पता पहले से ही उपयोग में है' को हल करने के बारे में है।

निष्कर्ष

'त्रुटि: सुनो EADDRINUSE: पता पहले से ही उपयोग में है' तब उत्पन्न होता है जब एक से अधिक सेवाएँ एक ही समय में एक ही पोर्ट का उपयोग करने का प्रयास करती हैं। इसे हल करने के लिए, उपयोगकर्ता को एक अलग पोर्ट नंबर का उपयोग करने का प्रयास करना चाहिए या '' का उपयोग करके निर्दिष्ट पोर्ट नंबर पर पहले से चल रही सेवाओं को बंद करना चाहिए। किल-पोर्ट ' मापांक। यदि त्रुटि अभी भी हल नहीं हुई है, तो चल रहे सभी को मार दें। नोड.जे.एस 'कार्य प्रबंधक से सेवाएँ और अपने एप्लिकेशन को पुनरारंभ करें। इस गाइड ने 'त्रुटि: EADDRINUSE सुनें: पता पहले से ही उपयोग में है' समस्या को हल करने के लिए संभावित समाधानों का वर्णन किया है।