شما می توانید با استفاده از ابزارهای مختلفی یک اپلیکیشن Node.js را باگ یابی کنید.
ما در این آموزش به شرح دو ابزار دیباگر هسته Node.js و Node Inspector خواهیم پرداخت.
باگ یابی در Node.js با استفاده از دیباگر هسته (Core Node.js debugger)
Node.js یک دیباگر داخلی به همراه خود دارد که آن را دیباگر هسته می نامیم. این دیباگر گرافیکی نیست و در تمامی پلتفرم ها پشتیبانی می شود.
این دیباگر چند این دستور برای کمک به فرایند باگ یابی در اختیار برنامه نویسان Node.js قرار می دهد.
Node.js البته در هنگام استفاده از این قابلیت می گوید که بهتر است از Node Inspector استفاده کنید. (پایین تر در مورد Node Inspector توضیح خواهیم داد.)
به عنوان مثال تصور کنید که محتویات فایل app.js
برابر با کدهای زیر است:
var fs = require('fs');
fs.readFile('test.txt', 'utf8', function (err, data) {
debugger;
if (err) throw err;
console.log(data);
});
فصل 12 – مثال 1
کلمه کلیدی debugger
را هر جایی که بخواهیم اپلیکیشن استپ شود، می نویسیم.
به عنوان مثال ما می خواهیم مقدار پارامتر data
را در دیباگر به دست آوریم. پس کلمه کلیدی debugger
را درون فانکشن مربوطه قرار میدهیم.
حالا می توانید دیباگر را با دستور node debugger app.js
فعال کنید.
در هنگامی که دیباگر به کلمه کلیدی debugger
میرسد اپلیکیشن را متوقف خواهد کرد و شماره خطی که اکنون در حال پردازش آن است پس از علامت < نشان داده می شود. چیزی شبیه تصویر زیر:

اکنون شما می توانید چند دستور را که دیباگر در اختیار شما قرار داده است مورد استفاده قرار دهید. به عنوان مثال دستور next
خط بعدی کدها را اجرا خواهد کرد. چیزی شبیه تصویر زیر:

برای اینکه اپلیکیشن فعالیت خود را تا کلمه کلیدی debugger
بعدی (اگر وجود داشته باشد) بدون وقفه ادامه دهد از دستور cont
استفاده کنید. مانند تصویر زیر:

با استفاده از دستور watch('expression')
قادر هستید تا یک متغیر (به جای کلمه expression نام متغیر را بگذارید) را علامت گذاری کرده و سیستم مقادیر آن را ذخیره خواهد کرد و در نهایت شما میتوانید با دستور watchers
آن ها را مشاهده کنید.
مانند تصویر زیر که ما متغیر data
را با دستور watch
علامت گذاری کرده ایم:

در نهایت با استفاده از دستور watchers
قادر هستید تا مقدار های انتصاب داده شده به متغیر مورد نظر خود را مشاهده کنید. مانند تصویر زیر:

جدول زیر دستور های مهم برای استفاده در دیباگر هسته Node.js را نشان می دهد:
دستور | توضیحات |
---|---|
next | ایست در دستور بعدی |
cont | ادامه اجرای کدها و استپ کردن دیباگر در صورت مشاهده دستور debugger |
step | ورود به فانکشن |
out | خروج از فانکشن |
watch | اضافه کردن متغیر به watch |
watcher | مشاهده مقادیر متغیر ها در watcher |
Pause | وقفه در اجرای کد ها |
باگ یابی در Node.js با استفاده از Node Inspector
استفاده از ابزار باگ یابی Node Inspector از روش قبلی بسیار ساده تر است و توسط خود Node.js پیشنهاد می شود.
Node inspector رابط گرافیکی دارد و فرآیند باگ یابی درون مرورگر انجام میشود.
برای نصب این ابزار باگ یاب دستور زیر را درون محیط ترمینال یا CMD تایپ کنید:
npm install -g node-inspector
اگر در هنگام اجرای دستور بالا با پیغام خطای npm install : Tried to download(404) مواجه شدید از دستور زیر برای نصب ابزار باگ یابی Node Inspector استفاده کنید:
npm install -g node-inspector@0.7.5
توجه داشته باشید سیستم باگ یابی Node.js همیشه در حال بروز رسانی است. ممکن است با ارائه نسخه های جدید برخی از دستور ها در آینده دوچار تغییر شوند.
پس از نصب node-inspector اکنون مرورگر کروم خود را باز کنید. و دستور chrome://inspect/#devices
را در آدرس باز تایپ کنید و اینتر بزنید.
در صفحه باز شده بر روی گزینه Open dedicated DevTools for Node کلیک کنید تا کنسول مخصوص نود.جی اس باز شود.
مانند تصویر زیر:

اکنون به محیط ترمینال بازگشته، دستور node --inspect-brk app
را تایپ کنید و اینتر بزنید تا پیغام Debugger attached را مشاهده کنید.
اکنون که کنسول باز شده درون مرورگر کروم را مشاده کنید، حاوی اطلاعات کد های شما خواهد بود.

در این صفحه بسیاری از امکانات برای استفاده موجود است. در بخش سمت راست می توانید تب watch را برای اضافه کردن متغیر ها و بررسی مقادیرشان در طول برنامه مورد استفاده قرار دهید. همچنین اگر روی هر متغیر نشانگر ماوس را حرکت دهید، مقدار آن به نمایش در خواهد آمد.