কিভাবে সমাধান করবেন 'ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যে ব্যবহার করা হচ্ছে'?

Kibhabe Samadhana Karabena Truti Sununa Eaddrinuse Thikana Itimadhye Byabahara Kara Hacche



Node.js হল একটি রানটাইম এনভায়রনমেন্ট যা জাভাস্ক্রিপ্ট ভাষায় লেখা কোডকে ওয়েবপেজ বা স্থানীয় সার্ভারে চালানোর অনুমতি দেয়। এটি একটি একক-থ্রেডেড পরিবেশ এবং একটি অ্যাসিঙ্ক্রোনাস প্রকৃতি রয়েছে। এটি বিভিন্ন বিল্ট-ইন এবং বাহ্যিক মডিউল অফার করে যা সার্ভারে HTTP অনুরোধ পাঠানোর মতো বিভিন্ন ক্রিয়াকলাপ সম্পাদন করতে ব্যবহার করা যেতে পারে। বিভিন্ন স্থানীয় সার্ভারের সাথে ইন্টারঅ্যাক্ট করার সময় একাধিক ত্রুটি পাওয়ার সুযোগ রয়েছে যা নির্দিষ্ট গাইড অনুসরণ করে সমাধান করা হয়।

এই নির্দেশিকা নীচের বিভাগগুলি কভার করে 'শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহার করা হচ্ছে' এর সম্ভাব্য সমাধানগুলি ব্যাখ্যা করে:

কিভাবে সমাধান করবেন 'ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যে ব্যবহার করা হচ্ছে'?

দ্য ' ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহার করা হচ্ছে৷ ” উদ্ভূত হয় যখন একাধিক অ্যাপ্লিকেশন বা টাস্ক একই পোর্ট অ্যাক্সেস করার চেষ্টা করে। এই ত্রুটি পরীক্ষা বা উন্নয়ন পর্যায়ে উত্থাপিত হতে পারে. উদাহরণস্বরূপ, উপরে উল্লিখিত ত্রুটিটি আরও ভাল বোঝার জন্য তৈরি হতে চলেছে:







const expressObj = প্রয়োজন ( 'প্রকাশ করা' )
const ডেমোঅ্যাপ = expressObj ( )
ডেমোঅ্যাপ। পাওয়া ( '/' , ( req, res ) => {
res json ( {
নাম : 'সিওআরএস-এ লিনাক্সহিন্ট প্রবন্ধ' ,
ভাষা : 'Node.js' ,
আবেদন : 'corsApp' ,
মূল : 'ক্রস অরিজিন' ,
মিডলওয়্যার : 'CORS'
} )
} )
ডেমোঅ্যাপ। শুনুন ( 8080 , ( ) => {
কনসোল লগ ( সার্ভার চালু হয়েছে 'http://localhost:8080/' ` )
} )
ডেমোঅ্যাপ। শুনুন ( 8080 , ( ) => {
কনসোল লগ ( সার্ভার চালু হয়েছে 'http://localhost:8080/' ` )
} )

উপরের কোড স্নিপেট এই মত কাজ করে:



  • প্রথমে, আমদানি করুন ' প্রকাশ করা 'মডিউল এবং একটি নতুন ভেরিয়েবলে এর বস্তু সংরক্ষণ করুন' expressObj ” 'নামক একটি নতুন এক্সপ্রেস অ্যাপ্লিকেশন তৈরি করতে কনস্ট্রাক্টর হিসাবে এই ভেরিয়েবলটি ব্যবহার করুন ডেমোঅ্যাপ
  • এর পরে, ' ব্যবহার করে একটি GET অনুরোধ তৈরি করুন পাওয়া() 'পদ্ধতি এবং পাস করে একটি রুট হ্যান্ডলার হিসাবে হোম পৃষ্ঠা সেট করুন' / ” প্রথম প্যারামিটার হিসাবে। দ্বিতীয় প্যারামিটার হল একটি বেনামী কলব্যাক ফাংশন যা পাঠায় ' JSON 'এর ব্যবহার দ্বারা প্রতিক্রিয়া হিসাবে ডেটা ' json() 'পদ্ধতি।
  • এর পরে, সেই অ্যাপটিকে 'এর একই পোর্ট নম্বরে কার্যকর করুন 8080 ' দুই বার. একই পোর্টের এই মৃত্যুদন্ড দুইবার উল্লিখিত ত্রুটি তৈরি করে।

উপরের কোডের সংকলনের পরে উত্পন্ন আউটপুট একটি 'ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহারে আছে' ত্রুটি দেখায়:







উপরের আউটপুটে যে ত্রুটিটি ঘটেছে তা সমাধান করার জন্য প্রধানত দুটি সমাধান রয়েছে যা হল পোর্ট নম্বর পরিবর্তন করা বা চলমান প্রক্রিয়াগুলির একটি বন্ধ করা। তবে আরও একাধিক সংশোধন রয়েছে যা পরোক্ষভাবে সমাধান করে ' ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহার করা হচ্ছে৷ ' ত্রুটি. ব্যবহারিক প্রদর্শনের সাথে এই সমাধানগুলি নীচে বর্ণিত হয়েছে:

সমাধান 1: বিভিন্ন পোর্টে প্রসেস চালান

উল্লিখিত ত্রুটির জন্য সর্বাধিক প্রস্তাবিত সমাধান হল পোর্ট নম্বরগুলি সনাক্ত করা যার উপর উভয় পরিষেবাই চলছে আমাদের ক্ষেত্রে এটি ' 8080 ” তারপরে, এলোমেলোভাবে একটি পরিষেবা বাছাই করুন এবং পরিষেবাগুলিকে লোকালহোস্টে শোনার জন্য এর পোর্ট নম্বর পরিবর্তন করুন কিন্তু বিভিন্ন পোর্ট নম্বর সহ। আলোচিত পরিবর্তনের পরে আমাদের কোড নীচে দেখানো হয়েছে:



const expressObj = প্রয়োজন ( 'প্রকাশ করা' )
const ডেমোঅ্যাপ = expressObj ( )
ডেমোঅ্যাপ। পাওয়া ( '/' , ( req, res ) => {
res json ( {
নাম : 'সিওআরএস-এ লিনাক্সহিন্ট প্রবন্ধ' ,
ভাষা : 'Node.js' ,
আবেদন : 'corsApp' ,
মূল : 'ক্রস অরিজিন' ,
মিডলওয়্যার : 'CORS'
} )
} )
ডেমোঅ্যাপ। শুনুন ( 8080 , ( ) => {
কনসোল লগ ( সার্ভার চালু হয়েছে 'http://localhost:8080/' ` )
} )
ডেমোঅ্যাপ। শুনুন ( 3000 , ( ) => {
কনসোল লগ ( সার্ভার চালু হয়েছে 'http://localhost:8080/' ` )
} )

উপরের কোডটি কার্যকর করার পরে উৎপন্ন আউটপুট দেখায় যে এখন ' ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহার করা হচ্ছে৷ 'সমস্যা সমাধান করা হয়েছে:

সমাধান 2: একই পোর্টে চলমান প্রক্রিয়াগুলি বন্ধ করা

'শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহৃত' ত্রুটিটি সমাধান করার আরেকটি উপায় হল নির্দিষ্ট পোর্টে চলমান প্রক্রিয়াগুলি বন্ধ করে যা ইতিমধ্যেই ব্যবহার করা হচ্ছে৷ এটি পোর্টটিকে নিষ্ক্রিয় করে দেবে যা বিকাশকারী নির্দিষ্ট কাজগুলি সম্পাদন করতে অ্যাক্সেস করতে পারে৷ এই থামানোর প্রক্রিয়াটি 'নামক একটি বাহ্যিক মডিউলের সাহায্যে করা হয় হত্যা-বন্দর

উদাহরণস্বরূপ, সমস্ত প্রক্রিয়া যা নির্দিষ্ট পোর্ট নম্বরে চলছে ' 8080 '' ব্যবহার করে হত্যা করা হচ্ছে হত্যা-বন্দর 'মডিউল। 'কিল-পোর্ট' মডিউলটি ব্যবহার করার দুটি উপায় রয়েছে এবং এই উভয় পদ্ধতির নিচে উল্লেখ করা হয়েছে:

পদ্ধতি 1: ইনস্টলেশনের পরে 'কিল-পোর্ট' মডিউল ব্যবহার করুন

দ্য ' হত্যা-বন্দর ” মডিউল হল একটি তৃতীয় পক্ষের বাহ্যিক মডিউল এবং node.js প্রকল্পের ভিতরে এই মডিউলটি ব্যবহার করার জন্য। এই মডিউলটি প্রথমে নীচের নির্দেশিত কমান্ডটি কার্যকর করার মাধ্যমে ডাউনলোড করতে হবে:

npm ইন্সটল কিল - বন্দর - g

নীচের চিত্রটি 'এর জন্য ইনস্টলেশন সমাপ্তি দেখায়' হত্যা-বন্দর পরিবর্তনশীল:

ইনস্টলেশনের পরে, ব্যবহারকারী প্রয়োজনীয় পোর্ট নম্বরের জন্য পরিষেবাগুলিকে হত্যা করতে পারে। আমাদের ক্ষেত্রে, পোর্ট নম্বরের পরিষেবা ' 8080 'নিম্নলিখিত কমান্ডের মাধ্যমে হত্যা করা হচ্ছে:

হত্যা - বন্দর -- বন্দর 8080

নীচের আউটপুট নিশ্চিত করে যে পোর্টের জন্য সমস্ত পরিষেবা ' 8080 ' হত্যা করা হয়েছে:

পদ্ধতি 2: ইনস্টলেশন ছাড়াই 'কিল-পোর্ট' মডিউল ব্যবহার করুন

দ্য ' হত্যা-বন্দর মডিউলটি ইনস্টলেশন প্রক্রিয়ার মধ্য দিয়ে না গিয়ে ব্যবহার করা যেতে পারে একটি ' npx 'প্যাকেজ রানার। উদাহরণস্বরূপ, ' হত্যা-বন্দর 'মডিউলটি নীচে বর্ণিত 'npx' প্যাকেজ রানার কমান্ড ব্যবহার করে নির্দিষ্ট দুটি পোর্টকে হত্যা করতে ব্যবহৃত হচ্ছে:

npx হত্যা - বন্দর 8080 9000

নীচের আউটপুট দেখায় যে নির্দিষ্ট পোর্টগুলির জন্য পরিষেবাগুলি ' 9000 ' এবং ' 8080 ' হত্যা করা হয়েছে:

বোনাস টিপ: 'কিল-পোর্ট' মডিউল আনইনস্টল করা

আনইনস্টল করার জন্য ' হত্যা-বন্দর ' সিস্টেম থেকে বিশ্বব্যাপী মডিউল নীচে বর্ণিত কমান্ডটি চালায়:

npm আনইনস্টল কিল - বন্দর - g

সমাধান 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-এ 'ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহার করা হচ্ছে' সমাধান করা।

উপসংহার

'ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহার করা হচ্ছে' উদ্ভূত হয় যখন একাধিক পরিষেবা একই সময়ে একটি একক পোর্ট ব্যবহার করার চেষ্টা করে। এটি সমাধান করার জন্য, ব্যবহারকারীর উচিত একটি ভিন্ন পোর্ট নম্বর ব্যবহার করার চেষ্টা করা বা 'ব্যবহার করে নির্দিষ্ট পোর্ট নম্বরে ইতিমধ্যেই চলমান পরিষেবাগুলিকে হত্যা করা উচিত। হত্যা-বন্দর 'মডিউল। যদি ত্রুটিটি এখনও সমাধান না হয় তবে সমস্ত চলমান মেরে ফেলুন ' node.js ' টাস্ক ম্যানেজার থেকে পরিষেবাগুলি এবং আপনার অ্যাপ্লিকেশন পুনরায় চালু করুন৷ এই নির্দেশিকাটি 'ত্রুটি: শুনুন EADDRINUSE: ঠিকানা ইতিমধ্যেই ব্যবহৃত' সমস্যা সমাধানের সম্ভাব্য সমাধানগুলিকে চিত্রিত করেছে৷