javascript - tutorial - w3schools




আমি কিভাবে Node.js অ্যাপ্লিকেশন ডিবাগ করবেন? (20)

আমি কিভাবে একটি Node.js সার্ভার অ্যাপ্লিকেশন ডিবাগ করবেন?

এই মুহুর্তে আমি বেশিরভাগ প্রিন্ট স্টেটমেন্ট দিয়ে সতর্কতা ডিবাগিং ব্যবহার করছি:

sys.puts(sys.inspect(someVariable));

ডিবাগ একটি ভাল উপায় হতে হবে। আমি জানি যে গুগল ক্রোম একটি কমান্ড লাইন ডিবাগার আছে। এই ডিবাগার Node.js পাশাপাশি জন্য উপলব্ধ?


নোডের নিজস্ব সংস্করণ জিওআই ডিবাগারে নির্মিত হয়েছে 6.3 সংস্করণ (ক্রোমের ডিভটুল ব্যবহার করে)

শুধু পরিদর্শক পতাকা পাস এবং আপনি পরিদর্শক একটি URL দিয়ে প্রদান করা হবে:

node --inspect server.js

আপনি পরিবর্তে --inspect-brk পাশ দিয়ে প্রথম লাইন বিরতি করতে পারেন।

স্বয়ংক্রিয়ভাবে একটি ক্রোম উইন্ডো খুলতে, inspect-process মডিউল ব্যবহার করুন।

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js

ডিবাগ

প্রোফাইলিং

  1. node --prof ./app.js
  2. node --prof-process ./the-generated-log-file

Heapdumps

Flamegraphs

রচনা

লগিং

ডিবাগিং তথ্য আউটপুট যে লাইব্রেরি

স্ট্যাক ট্রেস তথ্য উন্নত যে লাইব্রেরি

স্থির করা মাপকাঠি

অন্যান্য

উত্তরাধিকার

এই ব্যবহার কাজ কিন্তু এখন আর রক্ষণাবেক্ষণ করা হয় না বা আধুনিক নোড সংস্করণে আর প্রযোজ্য নয়।



অনেক সম্ভাবনা আছে ...

ডিবাগ সমর্থনটি প্রায়ই V8 ডিবাগিং প্রোটোকল বা নতুন ক্রোম ডিবাগিং প্রোটোকল ব্যবহার করে প্রয়োগ করা হয়।


আপনার পছন্দের ব্রাউজার ডিবাগারের সাথে ছোট Node.js স্ক্রিপ্টগুলি ডিবাগ করার জন্য দ্রুত এবং নোংরা উপায় ব্রাউজারিফাই ব্যবহার করতে হবে। উল্লেখ্য যে এই পদ্ধতিটি কোনও অ্যাপ্লিকেশনের সাথে কাজ করে না যার জন্য নেটিভ I / O লাইব্রেরি প্রয়োজন, তবে এটি বেশিরভাগ ছোট স্ক্রিপ্টের জন্য যথেষ্ট ভাল।

$ npm install -g browserify

এখন আপনার সব var x = requires('x') একটি requires.js ফাইলে কল করুন এবং চালান:

$ browserify requires.js -s window -o bundle.js

(এখানে নেতিবাচক দিকটি হল যে আপনার উভয় ফাইলগুলিতে আপনার requires সরানো বা মন্তব্য করা আছে।)

যেমন একটি এইচটিএমএল ফাইল bundle.js অন্তর্ভুক্ত করুন:

<script type="text/javascript" src="bundle.js"></script>

এখন আপনার ব্রাউজারে ফাইলটি লোড করুন এবং F12 এবং viola টিপুন: ব্রাউজারে ডিবাগ করুন।


আপনি যদি Atom IDE ব্যবহার করেন তবে আপনি node-debugger প্যাকেজটি ইনস্টল করতে পারেন।


আমি Node.js কোডটি ডিবাগ করার জন্য একটি ভিন্ন পদ্ধতি লিখেছিলাম যা স্থিতিশীল এবং অত্যন্ত সহজ। এটি https://github.com/s-a/iron-node এ উপলব্ধ।

একটি ওপেনসোর্স ক্রস প্ল্যাটফর্ম চাক্ষুষ ডিবাগার।

স্থাপন:

npm install iron-node -g;

ডিবাগ:

iron-node yourscript.js;



এই কমান্ড ব্যবহার করুন

DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect

এখানে অনেক উত্তরের উত্তর, কিন্তু আমি আমার মতামত যোগ করতে চাই (আমার পদ্ধতির উন্নতির উপর ভিত্তি করে)

ডিবাগ লগ

আসুন এটির মুখোমুখি হব, আমরা সবাই ভালো console.log('Uh oh, if you reached here, you better run.') ভালোবাসি। console.log('Uh oh, if you reached here, you better run.') এবং কখনও কখনও এটি দুর্দান্ত কাজ করে, তাই আপনি যদি এটি থেকে খুব বেশি দূরে সরানোর জন্য বিরক্ত হন তবে কমপক্ষে যোগ করুন কিছু Visionmedia এর ডিবাগ সঙ্গে আপনার লগ bling।

ইন্টারেক্টিভ ডিবাগিং

কনসোল লগিংয়ের মতো কাজটি পেশাগতভাবে ডিবাগ করার জন্য আপনাকে আপনার ভেতরে ঢুকতে এবং এতে আটকাতে হবে। ব্রেকপয়েন্ট সেট করুন, আপনার কোডের মাধ্যমে ধাপে যান, সেই অদ্ভুত আচরণের কারণ কী তা দেখতে স্কোপ এবং ভেরিয়েবলগুলি পরিদর্শন করুন। অন্যদের উল্লেখ আছে, node-inspector সত্যিই মৌমাছি হাঁটু হয়। এটি অন্তর্নির্মিত ডিবাগারের সাথে আপনি যা করতে পারেন তা করে, তবে সেই পরিচিত Chrome DevTools ইন্টারফেসটি ব্যবহার করে। যদি আমার মত, আপনি ওয়েবস্টর্ম ব্যবহার করেন তবে here থেকে ডিবাগিংয়ের জন্য একটি সহজ গাইড।

স্ট্যাক ট্রেস

ডিফল্টরূপে, আমরা ইভেন্ট লুপ (ticks) এর বিভিন্ন চক্র জুড়ে অপারেশনগুলির একটি সিরিজ ট্রেস করতে পারছি না। এই কাছাকাছি পেতে longjohn একটি চেহারা আছে (কিন্তু উৎপাদন না!)।

মেমরি লিক

Node.js সঙ্গে আমরা যথেষ্ট সময় জন্য থাকার প্রত্যাশিত একটি সার্ভার প্রক্রিয়া থাকতে পারে। আপনি যদি মনে করেন এটি কিছু কদর্য লিক ছড়িয়ে আছে? কিছু স্ন্যাপশট তুলনা করতে এবং কী পরিবর্তন হচ্ছে তা দেখতে heapdump এবং Chrome DevTools ব্যবহার করুন।

কিছু দরকারী নিবন্ধ জন্য, চেক আউট

আপনি যদি একটি ভিডিও (গুলি) দেখার মত মনে করেন

আপনি যে কোনও পথ চয়ন করেন, তা নিশ্চিত করুন যে আপনি কীভাবে ডিবাগ করছেন তা বোঝেন

এটি একটি বেদনাদায়ক জিনিস
আপনার নিজের কষ্ট তাকান এবং জানতে
যে আপনি নিজেকে এবং অন্য কেউ এটা তৈরি করেছে

সোফোকল, আজ্যাক্স


ক্রোম সংস্করণ 67.0.3396.62 (+) ব্যবহার করে

  1. নোড অ্যাপ্লিকেশন চালান

নোড - inspect-brk = 0.0.0.0: 9229 server.js (সার্ভার js ফাইলনাম)

  1. ক্রোমে আপনার অ্যাপ্লিকেশন ব্রাউজ করুন যেমন "স্থানীয় হোস্ট: পোর্ট"
  2. DevTools খুলুন।
  3. প্রতিক্রিয়াশীল ডিভাইসের আইকনের পাশে নোড আইকনে ক্লিক করুন।

অন্য একটি DevTools উইন্ডো হবে যা বিশেষভাবে ডিবাগিং নোড অ্যাপ্লিকেশনের জন্য পপ আউট হবে।


গুগল ক্রোম বিকাশকারীর অংশ হিসাবে প্রকাশিত V8 ডিবাগারটি নোড.জেএস স্ক্রিপ্টগুলি ডিবাগ করতে ব্যবহার করা যেতে পারে। এই কাজটি কিভাবে Node.js GitHub উইকি-এ পাওয়া যেতে পারে তার একটি বিস্তারিত ব্যাখ্যা।


যদি আপনার Node.js এর জন্য একটি শক্তিশালী লগিং লাইব্রেরির প্রয়োজন হয়, তবে Tracer একটি ভাল পছন্দ।

এটি টাইমস্ট্যাম্প, ফাইল নাম, পদ্ধতির নাম, লাইন নম্বর, পাথ বা কল স্ট্যাক, সমর্থন রঙ কনসোল, এবং সমর্থন ডাটাবেস, ফাইল, স্ট্রিম ট্রান্সপোর্টের সাথে লগ বার্তাগুলি আউটপুট করে। আমি লেখক



node-inspector দিন বাঁচাতে পারে! ওয়েব ব্রাউজার সমর্থনকারী কোনও ব্রাউজার থেকে এটি ব্যবহার করুন। ব্রেকপয়েন্ট, প্রোফাইলার, লাইভকোডিং ইত্যাদি ... এটি সত্যিই অসাধারণ।

এটি দিয়ে ইনস্টল করুন:

npm install -g node-inspector

তারপর চালান:

node-debug app.js


Brackets অ্যাডোব গবেষণার একটি প্রকল্প যা আপনাকে আপনার নড.জেএস কোডকে তাদের ওপেন সোর্স এডিটর ব্রেকেটে ডিবাগ করতে দেয়। এটি রিয়েল টাইম কোড কভারেজ, বিপরীতমুখী পরিদর্শন, অ্যাসিঙ্ক্রোনাস কল ট্রি এর মত কিছু আকর্ষণীয় বৈশিষ্ট্য রয়েছে।


ভিজ্যুয়াল স্টুডিও ২01২ বা ২013 এর জন্য Node.js সরঞ্জামগুলি একটি ডিবাগার অন্তর্ভুক্ত। এখানে সংক্ষিপ্ত বিবরণ "ভিজ্যুয়াল স্টুডিওর জন্য Node.js সরঞ্জামগুলি নোড অ্যাপ্লিকেশনের ডিবাগিংয়ের জন্য সম্পূর্ণ সমর্থন রয়েছে।" Node.js এ নতুন হচ্ছে, কিন্তু নেটতে ব্যাকগ্রাউন্ড থাকা, আমি এটি Node.js অ্যাপ্লিকেশনগুলি ডিবাগ করার দুর্দান্ত উপায় হিসাবে যোগ করেছি।


ভিজুয়াল স্টুডিও কোড ডিবাগিংয়ের জন্য আমার পছন্দ হবে। কোন সরঞ্জাম বা npm install স্টাফ npm install করার কোন overhead। প্যাকেজ.জসন এ আপনার অ্যাপের প্রাথমিক বিন্দু ঠিক করুন এবং VSCode স্বয়ংক্রিয়ভাবে আপনার সমাধান ভিতরে একটি কনফিগারেশন ফাইল তৈরি করবে। এটা Electron উপর নির্মিত, যা এটম মত সম্পাদক নির্মিত হয়।

ভিএস কোড অনুরূপ ডিবাগিং অভিজ্ঞতা দেয় যেমনটি আপনি অন্যান্য আইডিইগুলিতে যেমন VS, Eclipse ইত্যাদি থাকতে পারে।


পতাকাঙ্কিত পতাকা সঙ্গে আপনার নোড প্রক্রিয়া শুরু করুন।

node --inspect index.js

এবং তারপর chrome://inspect খুলুন chrome://inspect ক্রোম মধ্যে chrome://inspect । "নোডের জন্য ডেডিকেটেড ডেভলুলগুলি খুলুন" এ ক্লিক করুন অথবা ক্রোম ডেভেললগুলি সহজেই খোলার জন্য this ক্রোম এক্সটেনশনটি ইনস্টল করুন।

আরো তথ্যের জন্য this লিঙ্ক পড়ুন





google-chrome-devtools