node.js - meaning - express vpn




এক্সপ্রেসজেএস-ER Unhandled ত্রুটি ইভেন্ট নিক্ষেপ (18)

নীচের সংশোধন চেষ্টা করুন।

  1. আপনার পোর্ট ব্যবহার করে প্রক্রিয়া বন্ধ করার চেষ্টা করুন।

    netstat -tulnp | grep <port_number>

  2. নীচের pakcage ইনস্টল করার জন্য এটি আমার জন্য স্থায়ীভাবে স্থির।

    npm install [email protected] --save-dev --save-exact

  3. আপনার টার্মিনালে এই কমান্ডটি চালান:

    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

    আর্ক লিনাক্সের জন্য এই লাইনটি /etc/sysctl.d/99-sysctl.conf এ যুক্ত করুন:

    fs.inotify.max_user_watches=524288

    তারপর চালানো:

    sysctl --system

    এই পুনরায় বুট জুড়ে চলতে থাকবে।

    https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details

আমি নিম্নলিখিত কমান্ড ব্যবহার করে expressjs অ্যাপ্লিকেশন তৈরি:

express -e folderName
npm install ejs --save
npm install

যখন আমি অ্যাপ্লিকেশনটি node app.js : 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> (folderName/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)

কিভাবে ঠিক হবে এটা?


-> পোর্ট 8080 এ কি চলছে তা পরীক্ষা করুন অথবা আপনি যে কোন পোর্টটি চেক করতে চান তা পরীক্ষা করুন

lsof -i @localhost:8080

যদি কিছু চলছে তবে আপনি এটি বন্ধ করতে পারেন অথবা এটি বন্ধ করতে কিছু মারার কমান্ড ব্যবহার করতে পারেন


আপনি অন্য সার্ভারটি 8080 মত একই পোর্ট ব্যবহার করেছিলেন।

সম্ভবত আপনি অন্য শেলের node app চালান, এটি বন্ধ করুন এবং আবার চালান।

আপনি পোর্ট নম্বর চেক করতে পারেন। উপলব্ধ বা ব্যবহার করা হয় না

netstat -tulnp | grep <port no>

আপনি উইন্ডোজ ব্যবহার করলে, আপনি node.js এর জন্য টাস্ক ম্যানেজার থেকে প্রক্রিয়াটি শেষ করতে পারেন


আমার ক্ষেত্রে ইস্যুটি next() ব্যবহার করে একটি expressjs 'ব্যবহার' পদ্ধতি কলটিতে কল করার ভুলে গিয়েছিল।

যদি বর্তমান মিডলওয়্যার অনুরোধ-প্রতিক্রিয়া চক্রটি শেষ না করে তবে পরবর্তী মাদ্রাসার নিয়ন্ত্রণে যাওয়ার জন্য এটি পরবর্তী () কল করতে হবে, অন্যথায় অনুরোধটি ঝুলন্ত রাখা হবে।

http://expressjs.com/guide/using-middleware.html


আমার ক্ষেত্রেও আমি vagrant reload চালাতে হয়েছে। এমনকি আমার ভার্চুয়াল মেশিনে আমার এক্সপ্রেস অ্যাপ্লিকেশন চালানোর জন্য কোনও নোড প্রসেসের সাথেও আমি এখনও এই ত্রুটিটি পাচ্ছি না যতক্ষণ না ভ্রান্ত বাক্সটি পুনরায় লোড করা হচ্ছে।


আমি পোর্ট পরিবর্তন করে বাগ সংশোধন করা হয়েছিল

app.set('port', process.env.PORT || 3000);<br>

এবং পরিবর্তন:

app.set('port', process.env.PORT || 8080);<br>

উত্তর কেউ আমার জন্য কাজ।

যখন আমি আমার কম্পিউটারটি পুনরায় চালু করি তখন সার্ভারটি চালু এবং চলতে পারি।

ম্যাক
shutdown now -r

লিনাক্স
sudo shutdown now -r


একই প্রক্রিয়াটি বহুবার এবং পোর্ট 8000 এ যা চলছে তা সনাক্ত করতে সক্ষম হবার পরে, আমি বুঝতে পেরেছি যে আমি পোর্ট 8000 দুবার চালানোর চেষ্টা করছিলাম:

আগে:

MongoClient.connect(db.url, (err, database) => {
  if (err) return console.log(err);
  require('./app/routes')(app, database);

  app.listen(port, () => {
    console.log('We are live on ' + port);
  });
});

require('./app/routes')(app, {});
app.listen(port, () => {
  console.log("We are live on " + port);
});

পরে:

MongoClient.connect(db.url, (err, database) => {
  if (err) return console.log(err);
  require('./app/routes')(app, database);

  app.listen(port, () => {
    console.log('We are live on ' + port);
  });
});

require('./app/routes')(app, {});

একটি উদাহরণ সম্ভবত এখনও চলমান হয়। এই এটি ঠিক করা হবে।

killall node

আপডেট: এই কমান্ডটি শুধুমাত্র লিনাক্স / উবুন্টু এবং ম্যাকে কাজ করবে।


এটি ঠিক করার জন্য, আপনি যে সার্ভারটি চালাচ্ছেন সেটি বন্ধ করুন অথবা বন্ধ করুন। আপনি যদি Eclipse IDE ব্যবহার করেন তবে এইটি অনুসরণ করুন,

চালান> ডিবাগ

চলমান প্রক্রিয়াটি রাইট ক্লিক করুন এবং সমাপ্তি ক্লিক করুন।


এটি যে কারণ আপনি স্ক্রিপ্ট চালানোর জন্য ব্যবহার করা পোর্ট ইতিমধ্যে ব্যবহার করা হয়। আপনি যে পোস্ট ব্যবহার করছেন যা অন্যান্য নোড বন্ধ করতে হবে। যে জন্য, আপনি দ্বারা সব নোড চেক করতে পারেন

ps -e

অথবা নোড প্রক্রিয়া শুধুমাত্র ps -ef | grep node ব্যবহার করুন ps -ef | grep node এই আইডি দিয়ে আপনি সমস্ত নোড প্রক্রিয়া তালিকা দিতে হবে

সব নোড প্রক্রিয়া হত্যা

sudo killall -9 node

অথবা সুনির্দিষ্ট আইডি sudo kill -9 id


পোর্ট নোড ব্যবহার করার চেষ্টা করছেন ইতিমধ্যে অন্য প্রোগ্রাম দ্বারা ব্যবহার করা যেতে পারে। আমার ক্ষেত্রে এটি ntop ছিল, যা আমি সম্প্রতি ইনস্টল। ব্রাউজারে এটি বুঝতে হলে আমার http://localhost:3000/ খুলতে হয়েছিল। প্রক্রিয়া খুঁজে পেতে অন্য উপায় here দেওয়া here


প্রকৃতপক্ষে Ctrl + C কী নোড প্রক্রিয়া দ্বারা ব্যবহৃত পোর্ট প্রকাশ করা হয় না। তাই এই ত্রুটি আছে। সমস্যার সমাধানটি server.js এ নিম্নলিখিত কোড স্নিপেট ব্যবহার করে:

process.on('SIGINT', function() {
  console.log( "\nGracefully shutting down from SIGINT (Ctrl-C)" );
  // some other closing procedures go here
  process.exit(1);
});

এটা আমার জন্য কাজ করেছে।

আপনি NodeJS মধ্যে graceful shutdown এ উল্লিখিত অন্যান্য সমাধান জন্য চেক করতে পারেন


যদি আপনি কোনও উপকারে 3000 নম্বরে (ডিফল্ট এক্সপ্রেসে কঙ্কাল সেটআপ ব্যবহার করে ডিফল্ট) শোনা সব নোড ইনস্ট্যান্স এবং অন্যান্য পরিষেবাদিগুলিকে হত্যা করার চেষ্টা করেন তবে আপনার পরিবেশটি 'পোর্ট' সংজ্ঞায়িত করা কিছু অপ্রত্যাশিত হওয়ার বিষয়ে নিশ্চিত হওয়া উচিত। অন্যথায়, আপনি সম্ভবত একই ত্রুটি পাবেন। এক্সপ্রেস কঙ্কাল এর app.js ফাইলে আপনি লাইন 15 লক্ষ্য করবেন:

app.set('port', process.env.PORT || 3000);

যদি আপনি লিনাক্সে থাকেন তবে এই সমস্যাটিও হতে পারে যদি নোডজগুলি রুট হিসাবে চলছে না।

এই থেকে পরিবর্তন করুন:

nodejs /path/to/script.js

এটার জন্য:

sudo nodejs /path/to/script.js

শুধু আমার ঘটেছে এবং এখানে অন্য কোন পরামর্শ এটি সংশোধন করা হয়েছে। সৌভাগ্যক্রমে আমি স্ক্রিপ্ট অন্য রুটি হিসাবে চলমান যখন কাজ মনে ছিল। এই কেউ সাহায্য করে আশা করি!

Disclaimer: সম্ভবত এটি একটি উত্পাদন পরিবেশের জন্য সবচেয়ে ভাল সমাধান নয়। রুট হিসাবে আপনার সেবা শুরু আপনার সার্ভার / অ্যাপ্লিকেশন কিছু নিরাপত্তা গর্ত পরিচয় করিয়ে দিতে পারে। আমার ক্ষেত্রে, এটি একটি স্থানীয় পরিষেবাটির সমাধান ছিল, তবে আমি অন্যদেরকে কারণটি আলাদা করার চেষ্টা করার জন্য আরও কিছু সময় ব্যয় করতে উত্সাহিত করব।


শুধু আপনার পোর্ট পরিবর্তন, আপনার বর্তমান পোর্ট আইআইএস বা অন্য সার্ভার দ্বারা ব্যবহার করা হতে পারে।


events.js: 183 ছুটি er; // Unhandled 'ত্রুটি' ইভেন্ট

আমি একই ধরনের সমস্যা পেয়েছি এবং অনেক উপায়ে চেষ্টা করেছি কিন্তু অবশেষে এটি পেয়েছি, এটি ভালভাবে কাজ করে:

npm install [email protected].3.2 --save-dev --save-exact

আরও ব্যাখ্যা করার জন্য এই লিঙ্কটি পড়ুন https://github.com/ionic-team/ionic-cli/issues/2922





npm