آموزش Node.js – فصل دوازدهم: باگ یابی (Debugging)

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

Nodejs - فصل دوازدهم: باگ Debugging

شما می توانید با استفاده از ابزارهای مختلفی یک اپلیکیشن 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 میرسد اپلیکیشن را متوقف خواهد کرد و شماره خطی که اکنون در حال پردازش آن است پس از علامت < نشان داده می شود. چیزی شبیه تصویر زیر:

دستور دیباگینگ با Node.js

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

دستور next در دیباگینگ

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

دستور برای ادامه دیباگینگ

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

مانند تصویر زیر که ما متغیر data را با دستور watch علامت گذاری کرده ایم:

اضافه کردن متغیر به watchers

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

دستور 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 کلیک کنید تا کنسول مخصوص نود.جی اس باز شود.

مانند تصویر زیر:

کنسول کروم برای nodejs inspector

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

اکنون که کنسول باز شده درون مرورگر کروم را مشاده کنید، حاوی اطلاعات کد های شما خواهد بود.

استفاده از Node Inspector

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

ویدیوها و مطالب مشابه