• 0

ظهور الخطأ Error: listen EADDRINUSE في express ضمن node.js

لقد قمت بإنشاء مشروع express.js جديد باستخدام الأوامر التالية:

express -e myBlog
npm install ejs --save
npm install

ولكن عندما أحاول تشغيل المشروع بهذا الأمر:

node app.js

يظهر لي هذا الخطأ:

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: listen EADDRINUSE
    at errnoException (net.js:884:11)
    at Server._listen2 (net.js:1022:14)
    at listen (net.js:1044:10)
    at Server.listen (net.js:1110:5)
    at Object.<anonymous> (myBlog/app.js:33:24)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

كيف يمكنني حل هذه المشكلة؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1
killall -9 node

يمكن للأمر أعلاه توقيف اتصال vs code عندما تكون تقوم بالتطوير عن بُعد عبر SSH  وتقتل جميع العمليات التي تستخدم NodeJS التي يمكن أن تؤدي إلى مشاكل خاصة إذا كان لديك بعض التطبيقات تستعمل من طرف عملائك او موقعك أي تكون في ال production  ، هناك طريقة أفضل للقيام بذلك باستخدام netstat للحصول على كل العمليات التي تستخدم NodeJS مع المنفذ الذي يستخدمه ثم قم بتوقيف او عادة تشغيل المنفذ الذي تريده بواسطة

 netstat -lntp | grep node

سيتم إظهار كل العمليات التي تستخدم NodeJS  مع رقم المنفذ المستخدم من طرفها 

مثال 

tcp6 0 0 :::5744 :::* LISTEN 3864/node

بعد ذلك مثلا ستقوم ب بتوقيف العملية التي تحمل PID رقم 3864 بالأمر التالي مع تغيير PID  برقم العملية التي يستخدمها تطبيق NodeJS الخاص بك 

kill -9 PID

او تقوم بإعادة تشغيلها او عمل refresh  لها لكي تحصل على PID جديد خاص بها عبر الامر التالي مع تغيير PID  برقم العملية التي يستخدمها تطبيق NodeJS الخاص بك 

kill -HUP PID

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

Error: listen EADDRINUSE هذا الخطأ يعني أن لديك بالفعل عملية أخرى تستمع على المنفذ 3000.

لهذا يجب عليك تغيير المنفذ أو يمكنك معرفة العملية التي تستمع لهذا المنفذ

C:\> netstat -a -b

(أضف -n لإيقافه عن محاولة حل أسماء المضيف ، مما سيجعله أسرع كثيرًا.)

-a يعرض جميع الاتصالات ومنافذ الاستماع.

-b يعرض التنفيذ المتضمن في إنشاء كلٍ من الاتصال أو منفذ الاستماع. 

-n يعرض العناوين وأرقام المنافذ بشكل رقمي.

-o يعرض معرّف العملية المالك المرتبط بكل اتصال.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

كما شرح عبدالمجيد في التعليق السابق أنه يوجد Port مستخدم ولذلك يمكنك الكشف إذا كان port ما مستخدم أم لا ومن ثم إغلاقه عن طريق استخدام lsof 

lsof -i :<port no>

سيعطيك الأمر السابق ال process id ثم يمكنك إيقاف العملية

kill -9 <process id>

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن