~2 دقیقه مطالعه • بروزرسانی ۸ دی ۱۴۰۴
1. معرفی
ماژول inspector با دستور require('node:inspector') یا require('node:inspector/promises') در دسترس است. این ماژول امکان ارسال پیام به backend V8 Inspector و دریافت پاسخها و اعلانها را فراهم میکند.
2. کلاس inspector.Session
new inspector.Session(): ایجاد نشست جدید.session.connect(): اتصال به backend.session.disconnect(): قطع اتصال و پاکسازی وضعیت.session.post(method[, params]): ارسال پیام به backend برای اجرای دستورات مانندRuntime.evaluate.
3. رویدادها
inspectorNotification: اعلان عمومی از V8 Inspector.- رویدادهای خاص مانند
Debugger.pausedبرای مدیریت breakpointها.
4. پروفایلینگ
- CPU Profiler: فعالسازی با
Profiler.enableو شروع باProfiler.start، سپس توقف و ذخیرهٔ پروفایل. - Heap Profiler: گرفتن snapshot حافظه با
HeapProfiler.takeHeapSnapshotو ذخیرهٔ خروجی در فایل.
5. APIهای عمومی
inspector.open([port, host, wait]): فعالسازی inspector روی پورت و هاست مشخص.inspector.url(): دریافت URL فعال inspector.inspector.waitForDebugger(): توقف اجرای برنامه تا اتصال دیباگر.inspector.close(): بستن تمام اتصالها.
6. ادغام با DevTools
Inspector میتواند رویدادهای پروتکل DevTools مانند Network.requestWillBeSent یا Network.responseReceived را به frontendهای متصل ارسال کند. این قابلیت برای بررسی درخواستهای HTTP و WebSocket مفید است.
7. مثال ساده
const inspector = require('node:inspector');
const session = new inspector.Session();
session.connect();
session.post('Runtime.evaluate', { expression: '2 + 2' },
(err, { result }) => console.log(result));
نتیجهگیری
ماژول inspector در Node.js ابزاری قدرتمند برای دیباگ و پروفایلینگ است. با اتصال به پروتکل Chrome DevTools میتوان اجرای برنامه را بررسی کرد، پروفایل CPU و حافظه گرفت، و رویدادهای شبکه را مدیریت نمود. این ماژول توسعهدهندگان را قادر میسازد کنترل دقیق بر چرخهٔ اجرای برنامه داشته باشند.
نوشته و پژوهش شده توسط دکتر شاهین صیامی