'خرابی: سنیں EADDRINUSE: ایڈریس پہلے سے استعمال میں ہے' کو کیسے حل کریں؟

Khraby Sny Eaddrinuse Ay Rys P L S Ast Mal My Kw Kys Hl Kry



Node.js ایک رن ٹائم ماحول ہے جو JavaScript زبان میں لکھے گئے کوڈ کو ویب پیج یا مقامی سرور پر عمل کرنے کی اجازت دیتا ہے۔ یہ ایک واحد دھاگے والا ماحول ہے اور اس کی متضاد نوعیت ہے۔ یہ مختلف بلٹ ان اور ایکسٹرنل ماڈیولز پیش کرتا ہے جنہیں سرور پر HTTP درخواستیں بھیجنے جیسے مختلف آپریشنز انجام دینے کے لیے استعمال کیا جا سکتا ہے۔ مختلف مقامی سرورز کے ساتھ تعامل کے دوران متعدد غلطیاں حاصل کرنے کا موقع ملتا ہے جو مخصوص گائیڈز پر عمل کرکے حل کی جاتی ہیں۔

یہ گائیڈ ذیل کے حصوں کا احاطہ کرتے ہوئے 'سن EADDRINUSE: ایڈریس پہلے سے استعمال میں ہے' کے لیے ممکنہ اصلاحات کی وضاحت کرتا ہے۔

'خرابی: سنیں EADDRINUSE: ایڈریس پہلے سے استعمال میں ہے' کو کیسے حل کریں؟

' خرابی: سنیں EADDRINUSE: پتہ پہلے سے استعمال میں ہے۔ ' تب پیدا ہوتا ہے جب ایک سے زیادہ ایپلیکیشنز یا ٹاسک ایک ہی پورٹ تک رسائی حاصل کرنے کی کوشش کرتے ہیں۔ اس غلطی کو جانچ یا ترقی کے مراحل کے دوران اٹھایا جا سکتا ہے۔ مثال کے طور پر، بہتر تفہیم کے لیے مذکورہ بالا غلطی پیدا ہونے والی ہے:







const expressObj = ضرورت ہے ( 'اظہار' )
const demoApp = expressObj ( )
demoApp. حاصل کریں ( '/' ، ( req، res ) => {
res json ( {
نام : 'CORS پر لینکسہنٹ آرٹیکل' ،
زبان : 'Node.js' ،
درخواست : 'corsApp' ،
اصل : 'کراس اوریجن' ،
مڈل ویئر : 'CORS'
} )
} )
demoApp. سنو ( 8080 ، ( ) => {
تسلی. لاگ ( 'سرور آن شروع ہو گیا۔ 'http://localhost:8080/' ` )
} )
demoApp. سنو ( 8080 ، ( ) => {
تسلی. لاگ ( 'سرور آن شروع ہو گیا۔ 'http://localhost:8080/' ` )
} )

مندرجہ بالا کوڈ کا ٹکڑا اس طرح کام کرتا ہے:



  • سب سے پہلے، درآمد کریں ' اظہار 'ماڈیول اور اس کے آبجیکٹ کو ایک نئے متغیر میں اسٹور کریں' expressObj ' اس متغیر کو بطور کنسٹرکٹر استعمال کریں ایک نئی ایکسپریس ایپلی کیشن بنانے کے لیے جس کا نام ہے “ demoApp '
  • اگلا، استعمال کرتے ہوئے ایک GET درخواست بنائیں حاصل کریں() 'طریقہ اور ہوم پیج کو روٹ ہینڈلر کے طور پر پاس کرکے سیٹ کریں' / 'پہلے پیرامیٹر کے طور پر۔ دوسرا پیرامیٹر ایک گمنام کال بیک فنکشن ہے جو بھیجتا ہے ' JSON 'کے استعمال سے جواب کے طور پر ڈیٹا' json() 'طریقہ.
  • اس کے بعد، اس ایپ کو 'کے اسی پورٹ نمبر پر عمل میں لائیں 8080 ' دو دفعہ. ایک ہی پورٹ پر دو بار عمل درآمد مذکورہ غلطی پیدا کرتا ہے۔

مندرجہ بالا کوڈ کی تالیف کے بعد پیدا ہونے والا آؤٹ پٹ 'Error: listen EADDRINUSE: ایڈریس پہلے سے ہی استعمال میں ہے' کی موجودگی کو ظاہر کرتا ہے:







مندرجہ بالا آؤٹ پٹ میں پیش آنے والی غلطی کو حل کرنے کے لیے بنیادی طور پر دو حل ہیں جو کہ پورٹ نمبرز کو تبدیل کرنا یا چلنے والے عمل میں سے کسی ایک کو روکنا ہے۔ لیکن متعدد دیگر اصلاحات بھی ہیں جو بالواسطہ طور پر حل کرتی ہیں ' خرابی: سنیں EADDRINUSE: پتہ پہلے سے استعمال میں ہے۔ 'غلطی. عملی مظاہروں کے ساتھ یہ حل ذیل میں بیان کیے گئے ہیں:

حل 1: مختلف بندرگاہوں پر عمل چلائیں۔

مذکورہ غلطی کا سب سے تجویز کردہ حل ان پورٹ نمبروں کی نشاندہی کرنا ہے جن پر دونوں سروسز چل رہی ہیں جیسا کہ ہمارے معاملے میں یہ ہے ' 8080 ' پھر، تصادفی طور پر ایک سروس چنیں اور اس کے پورٹ نمبر میں ترمیم کریں تاکہ سروسز لوکل ہوسٹ پر سن سکیں لیکن مختلف پورٹ نمبروں کے ساتھ۔ زیر بحث ترمیم کے بعد ہمارا کوڈ ذیل میں دکھایا گیا ہے:



const expressObj = ضرورت ہے ( 'اظہار' )
const demoApp = expressObj ( )
demoApp. حاصل کریں ( '/' ، ( req، res ) => {
res json ( {
نام : 'CORS پر لینکسہنٹ آرٹیکل' ،
زبان : 'Node.js' ،
درخواست : 'corsApp' ،
اصل : 'کراس اوریجن' ،
مڈل ویئر : 'CORS'
} )
} )
demoApp. سنو ( 8080 ، ( ) => {
تسلی. لاگ ( 'سرور آن شروع ہو گیا۔ 'http://localhost:8080/' ` )
} )
demoApp. سنو ( 3000 ، ( ) => {
تسلی. لاگ ( 'سرور آن شروع ہو گیا۔ 'http://localhost:8080/' ` )
} )

مندرجہ بالا کوڈ پر عمل کرنے کے بعد پیدا ہونے والا آؤٹ پٹ ظاہر کرتا ہے کہ اب ' خرابی: سنیں EADDRINUSE: پتہ پہلے سے استعمال میں ہے۔ مسئلہ حل ہو گیا:

حل 2: ایک ہی پورٹ پر چلنے والے عمل کو روکنا

'Len EADDRINUSE: ایڈریس پہلے سے ہی استعمال میں ہے' کو حل کرنے کا ایک اور طریقہ یہ ہے کہ مخصوص پورٹ پر چلنے والے عمل کو روکنا جو پہلے سے استعمال میں ہے۔ اس سے پورٹ بیکار ہو جائے گا جس تک ڈیولپر مخصوص کام انجام دینے کے لیے رسائی حاصل کر سکتا ہے۔ یہ روکنے کا عمل ایک بیرونی ماڈیول کی مدد سے کیا جاتا ہے جس کا نام ' مارنے کی بندرگاہ '

مثال کے طور پر، وہ تمام عمل جو مخصوص پورٹ نمبر پر چل رہے ہیں۔ 8080 'کا استعمال کرتے ہوئے مارے جا رہے ہیں' مارنے کی بندرگاہ 'ماڈیول۔ 'Kill-port' ماڈیول کو استعمال کرنے کے دو طریقے ہیں اور یہ دونوں طریقے ذیل میں بیان کیے گئے ہیں:

طریقہ 1: انسٹال کرنے کے بعد 'کِل پورٹ' ماڈیول استعمال کریں۔

' مارنے کی بندرگاہ ” ماڈیول تیسری پارٹی کا بیرونی ماڈیول ہے اور اس ماڈیول کو node.js پروجیکٹ کے اندر استعمال کرنے کے لیے۔ اس ماڈیول کو پہلے نیچے دی گئی کمانڈ پر عمل کرکے ڈاؤن لوڈ کرنے کی ضرورت ہے۔

npm انسٹال قتل - بندرگاہ - جی

مندرجہ ذیل اعداد و شمار کے لئے تنصیب کی تکمیل کو ظاہر کرتا ہے ' مارنے کی بندرگاہ متغیر:

تنصیب کے بعد، صارف مطلوبہ پورٹ نمبر کے لیے خدمات کو ختم کر سکتا ہے۔ ہمارے معاملے میں، پورٹ نمبر کی خدمات ' 8080 ذیل میں بیان کردہ کمانڈ کے ذریعے مارے جائیں گے:

مار ڈالو - بندرگاہ -- بندرگاہ 8080

مندرجہ ذیل آؤٹ پٹ اس بات کی تصدیق کرتا ہے کہ بندرگاہ کے لیے تمام خدمات ' 8080 'مارے گئے ہیں:

طریقہ 2: انسٹال کیے بغیر 'کِل پورٹ' ماڈیول استعمال کریں۔

' مارنے کی بندرگاہ 'ماڈیول کو انسٹالیشن کے عمل سے گزرے بغیر استعمال کیا جا سکتا ہے' npx 'پیکیج رنر. مثال کے طور پر، ' مارنے کی بندرگاہ 'ماڈیول کو ذیل میں بیان کردہ 'npx' پیکیج رنر کمانڈ کا استعمال کرتے ہوئے مخصوص دو بندرگاہوں کو ختم کرنے کے لیے استعمال کیا جا رہا ہے:

npx کو مار ڈالو - بندرگاہ 8080 9000

مندرجہ ذیل آؤٹ پٹ سے پتہ چلتا ہے کہ مخصوص بندرگاہوں کے لیے خدمات ' 9000 'اور' 8080 'مارے گئے ہیں:

بونس ٹپ: 'کِل پورٹ' ماڈیول کی اَن انسٹالیشن

ان انسٹال کرنے کے لیے ' مارنے کی بندرگاہ ' نظام سے عالمی سطح پر ماڈیول ذیل میں بیان کردہ کمانڈ پر عمل درآمد کریں:

npm ان انسٹال کو ختم کریں۔ - بندرگاہ - جی

حل 3: ونڈوز پر Node.js سروسز کو ختم کریں۔

اگر 'خرابی: سنیں EADDRINUSE: ایڈریس پہلے سے استعمال میں ہے' اب بھی برقرار رہتا ہے، تو پھر چل رہے تمام کو ختم کر دیں ' node.js خدمات یا تو GUI یا CLI اپروچ کا استعمال کرتی ہیں۔

CLI اپروچ کا استعمال

دبائیں ' کھڑکی سرچ بار کھولنے کے لیے بٹن دبائیں اور درج کریں سی ایم ڈی تلاش کے خانے کے اندر، پیدا کردہ نتائج سے۔ پھر، منتخب کریں ' کمانڈ پرامپٹ 'درخواست، اور دبائیں' انتظامیہ کے طورپر چلانا بٹن:

آپشن کو منتخب کرنے سے، کنٹرول پرامپٹ کی ایک نئی ونڈو ظاہر ہوگی، پس منظر میں موجودہ 'node.js' سروسز کو ختم کرنے کے لیے، نیچے دی گئی کمانڈ پر عمل کریں:

ٹاسک کِل / ایف / IM نوڈ۔ exe

تیار کردہ آؤٹ پٹ سے پتہ چلتا ہے کہ 'node.js' سروسز کو ختم کر دیا گیا ہے:

GUI اپروچ کا استعمال

سسٹم سے چلنے والی node.js سروسز کو ختم کرنے کے لیے، 'کھولیں۔ ٹاسک مینیجر 'مارنے سے' Ctrl + Shift + Esc 'فوری طور پر چابیاں. 'ٹاسک مینیجر' کو کھولنے کے بعد، 'پر جائیں تفصیلات ٹائپ کریں، منتخب کریں node.exe 'خدمت کریں، اور' کو دبائیں ٹاسک ختم کریں۔ ' بٹن نیچے دائیں سمت میں رہتا ہے، جیسا کہ ذیل میں دکھایا گیا ہے:

یہ سب Node.js میں 'Error: listen EADDRINUSE: ایڈریس پہلے سے استعمال میں ہے' کو حل کرنے کے بارے میں ہے۔

نتیجہ

'خرابی: سنیں EADDRINUSE: ایڈریس پہلے سے استعمال میں ہے' تب پیدا ہوتا ہے جب ایک سے زیادہ سروس ایک ہی وقت میں ایک پورٹ کو استعمال کرنے کی کوشش کرتی ہے۔ اسے حل کرنے کے لیے، صارف کو ایک مختلف پورٹ نمبر استعمال کرنے کی کوشش کرنی چاہیے یا ان سروسز کو ختم کرنا چاہیے جو پہلے سے مخصوص پورٹ نمبر پر چل رہی ہیں۔ مارنے کی بندرگاہ 'ماڈیول۔ اگر خرابی اب بھی حل نہیں ہوتی ہے، تو چل رہے تمام کو ختم کر دیں ' node.js ٹاسک مینیجر سے خدمات اور اپنی درخواست کو دوبارہ شروع کریں۔ اس گائیڈ نے 'Error: listen EADDRINUSE: ایڈریس پہلے سے ہی استعمال میں ہے' کو حل کرنے کے ممکنہ حل کی مثال دی ہے۔