كيفية تصحيح أخطاء كود Node.js باستخدام أدوات متعددة

نشرت: 2022-03-15

Node.js هو وقت تشغيل JavaScript يعتمد على نفس محرك V8 المستخدم في متصفح Chrome من Google. غالبًا ما يتم استخدامه لإنشاء تطبيقات من جانب الخادم والطرفية عبر الأنظمة الأساسية. أصبح Node.js ذا شعبية متزايدة خلال العقد الماضي لأنه سهل التثبيت وعملي الاستخدام وسريع ويسمح لمطوري الويب من جانب العميل بالاستفادة من مهاراتهم في أي مكان آخر.

ومع ذلك ، يظل تطوير البرامج مهمة معقدة ، وسيفشل كود Node.js في مرحلة ما. يوضح هذا البرنامج التعليمي أدوات متنوعة للمساعدة في تصحيح أخطاء التطبيقات ومعرفة سبب المشكلة.

دعنا نتعمق في الأمر.

نظرة عامة على التصحيح

"التصحيح" هو الاسم الذي يطلق على الوسائل المختلفة لإصلاح عيوب البرامج. غالبًا ما يكون إصلاح الخلل بسيطًا. يمكن أن يكون العثور على سبب الخطأ أكثر تعقيدًا إلى حد كبير ويتطلب عدة ساعات من حك الرأس.

تصف الأقسام التالية ثلاثة أنواع عامة من الأخطاء التي ستواجهها.

أخطاء نحوية

لا تتبع التعليمات البرمجية الخاصة بك قواعد اللغة - على سبيل المثال ، عندما تحذف قوس إغلاق أو أخطأت في كتابة جملة مثل console.lag(x) .

يمكن أن يساعد محرر الكود الجيد في اكتشاف المشكلات الشائعة من خلال:

  • عبارات الترميز اللوني صالحة أو غير صالحة
  • متغيرات التحقق من النوع
  • وظيفة الإكمال التلقائي وأسماء المتغيرات
  • تسليط الضوء على مطابقة الأقواس
  • مسافة بادئة تلقائية لكتل ​​التعليمات البرمجية
  • كشف رمز لا يمكن الوصول إليه
  • إعادة هيكلة الوظائف الفوضوية

تتمتع برامج التحرير المجانية مثل VS Code و Atom بدعم كبير لـ Node.js و JavaScript و TypeScript (التي تنتقل إلى JavaScript). يمكن عادةً اكتشاف مشكلات البنية الأساسية قبل حفظ التعليمات البرمجية واختبارها.

سيُبلغ أيضًا عنبر الكود مثل ESLint عن أخطاء في بناء الجملة ، ومسافة بادئة سيئة ، ومتغيرات غير معرّفة. ESLint هي أداة Node.js يمكنك تثبيتها عالميًا باستخدام:

 npm i eslint -g

يمكنك التحقق من ملفات JavaScript من سطر الأوامر باستخدام:

 eslint mycode.js

... ولكن من الأسهل استخدام مكون إضافي للمحرر مثل ESLint لـ VS Code أو linter-eslint لـ Atom ، والذي يقوم تلقائيًا بالتحقق من صحة الرمز أثناء الكتابة:

ESlint في رمز VS
ESlint في رمز VS.

أخطاء المنطق

تعمل التعليمات البرمجية الخاصة بك ولكنها لا تعمل كما تتوقع. على سبيل المثال ، لا يتم تسجيل خروج المستخدم عندما يطلب ذلك ؛ تقرير يظهر أرقام غير صحيحة ؛ لا يتم حفظ البيانات بالكامل في قاعدة البيانات ؛ إلخ.

يمكن أن تحدث الأخطاء المنطقية عن طريق:

  • استخدام المتغير الخاطئ
  • شروط غير صحيحة ، على سبيل المثال if (a > 5) بدلاً من if (a < 5)
  • الحسابات التي لا تأخذ في الاعتبار أسبقية عامل التشغيل ، مثل 1+2*3 ينتج عنها 7 بدلاً من 9.

إنه أمر لا مفر منه: ستفشل شفرة Node.js في مرحلة ما. تعرف على الأدوات التي يمكنك استخدامها لتصحيح أخطاء التطبيقات والعثور على سبب المشكلة هنا انقر للتغريد

أخطاء وقت التشغيل (أو التنفيذ)

يصبح الخطأ واضحًا فقط عند تنفيذ التطبيق ، مما يؤدي غالبًا إلى حدوث عطل. يمكن أن تحدث أخطاء وقت التشغيل بسبب:

  • القسمة على متغير تم ضبطه على صفر
  • محاولة الوصول إلى عنصر مصفوفة غير موجود
  • محاولة الكتابة إلى ملف للقراءة فقط

يصعب اكتشاف أخطاء المنطق ووقت التشغيل ، على الرغم من أن تقنيات التطوير التالية يمكن أن تساعد:

  1. استخدام التطوير المستند إلى الاختبار: تشجعك TTD على كتابة الاختبارات قبل تطوير الوظيفة ، على سبيل المثال ، يتم إرجاع X من functionY عند تمرير Z كمعامل. يتم تشغيل هذه الاختبارات أثناء التطوير الأولي والتحديثات اللاحقة لضمان استمرار عمل الكود بالشكل المتوقع.
  2. استخدم نظام تتبع المشكلات: لا يوجد شيء أسوأ من رسالة بريد إلكتروني تدعي أن "برنامجك لا يعمل" ! تتيح لك أنظمة تتبع المشكلات تسجيل مشكلات معينة ، وخطوات إعادة إنتاج المستندات ، وتحديد الأولويات ، وتعيين المطورين ، وتتبع تقدم الإصلاحات.
  3. استخدام التحكم بالمصادر: سيساعدك نظام التحكم بالمصادر مثل Git في نسخ التعليمات البرمجية احتياطيًا وإدارة المراجعات وتحديد مكان إدخال الخطأ. توفر المستودعات عبر الإنترنت ، بما في ذلك Github و Bitbucket ، مساحة وأدوات مجانية للمشاريع الصغيرة أو مفتوحة المصدر.

ستظل تواجه أخطاء Node.js ، لكن الأقسام التالية تصف طرقًا لتحديد موقع هذا الخطأ المراوغ.

قم بتعيين متغيرات بيئة Node.js المناسبة

يمكن لمتغيرات البيئة المحددة في نظام التشغيل المضيف التحكم في تطبيق Node.js وإعدادات الوحدة النمطية. الأكثر شيوعًا هو NODE_ENV ، والذي يتم تعيينه عادةً للتطوير عند التصحيح أو الإنتاج عند التشغيل على خادم مباشر. اضبط متغيرات البيئة على macOS أو Linux باستخدام الأمر:

 NODE_ENV=development

أو في موجه أوامر Windows (الكلاسيكي):

 set NODE_ENV=development

أو Windows Powershell:

 $env:NODE_ENV="development"

في إطار عمل Express.js الشهير ، يؤدي تعيين NODE_ENV إلى التطوير إلى تعطيل التخزين المؤقت لملف القالب وإخراج رسائل خطأ مطولة ، والتي قد تكون مفيدة عند تصحيح الأخطاء. قد تقدم الوحدات النمطية الأخرى ميزات مشابهة ، ويمكنك إضافة شرط NODE_ENV إلى تطبيقاتك ، على سبيل المثال

 // running in development mode? const devMode = (process.env.NODE_ENV !== 'production'); if (devMode) { console.log('application is running in development mode'); }

يمكنك أيضًا استخدام طريقة util.debuglog الخاصة بـ Node لإخراج رسائل الخطأ بشكل مشروط ، على سبيل المثال

 import { debuglog } from 'util'; const myappDebug = debuglog('myapp'); myappDebug('log something');

سيقوم هذا التطبيق بإخراج رسالة السجل فقط عندما يتم تعيين NODE_DEBUG على myapp أو حرف بدل مثل * أو my *.

استخدم خيارات سطر أوامر Node.js

عادةً ما يتم تشغيل البرامج النصية للعقدة باستخدام عقدة متبوعة باسم البرنامج النصي للإدخال:

 node app.js

يمكنك أيضًا تعيين خيارات سطر الأوامر للتحكم في جوانب وقت التشغيل المختلفة. تتضمن العلامات المفيدة لتصحيح الأخطاء ما يلي:

  • --check
    بناء الجملة تحقق من البرنامج النصي دون تنفيذ
  • --trace-warnings
    إخراج تتبع مكدس عندما لا يتم حل أو رفض وعود JavaScript
  • --enable-source-maps
    إظهار خرائط المصدر عند استخدام ناقل مثل TypeScript
  • --throw-deprecation
    تحذير عند استخدام ميزات Node.js الموقوفة
  • --redirect-warnings=file
    تحذيرات الإخراج إلى ملف بدلاً من stderr
  • --trace-exit
    إخراج تتبع مكدس عندما يتم استدعاء process.exit() .

إخراج الرسائل إلى وحدة التحكم

يعد إخراج رسالة وحدة التحكم من أبسط الطرق لتصحيح أخطاء تطبيق Node.js:

 console.log(`someVariable: ${ someVariable }`);

قلة من المطورين يدركون أن هناك العديد من طرق وحدة التحكم الأخرى:

طريقة وحدة التحكم وصف
.log(msg) رسالة وحدة التحكم القياسية
.log('%j', obj) الناتج كسلسلة JSON مضغوطة
.dir(obj, opt) خصائص كائن الطباعة الجميلة
.table(obj) مصفوفات الإخراج والكائنات بتنسيق جدولي
.error(msg) رسالة خطأ
.count(label) زيادة عداد وإخراج مسمى
.countReset(label) إعادة تعيين عداد مسمى
.group(label) مسافة بادئة لمجموعة من الرسائل
.groupEnd(label) إنهاء مجموعة
.time(label) يبدأ مؤقت مسمى
.timeLog(label) تقارير الوقت المنقضي
.timeEnd(label) يوقف جهاز ضبط وقت مسمى
.trace() إخراج تتبع مكدس (قائمة بجميع استدعاءات الوظائف التي تم إجراؤها)
.clear() امسح وحدة التحكم

يقبل console.log() أيضًا قائمة بالقيم المفصولة بفواصل:

 let x = 123; console.log('x:', x); // x: 123

… على الرغم من أن التدمير ES6 يقدم مخرجات مماثلة بجهد أقل:

 console.log({ x }); // { x: 123 }

يقوم الأمر console.dir ( ) بطباعة خصائص الكائن بنفس الطريقة التي يطبع بها الأمر console.dir ():

 console.dir(myObject, { depth: null, color: true });

الجدل وحدة التحكم

يدعي بعض المطورين أنه لا يجب عليك استخدام console.log() للأسباب التالية:

  • أنت تقوم بتغيير الشفرة وقد تغير شيئًا ما أو تنسى إزالته ، و
  • ليست هناك حاجة عندما تكون هناك خيارات تصحيح أخطاء أفضل.

لا تصدق أي شخص يدعي أنه لم يستخدم أبدًا console.log() ! التسجيل سريع وقذر ، لكن الجميع يستخدمه في وقت ما. استخدم أي أداة أو تقنية تفضلها. يعد إصلاح الخلل أكثر أهمية من الطريقة التي تتبعها للعثور عليه.

استخدم نظام تسجيل تابع لجهة خارجية

توفر أنظمة تسجيل الجهات الخارجية ميزات أكثر تعقيدًا مثل مستويات المراسلة والإسهاب والفرز وإخراج الملف والتنميط وإعداد التقارير والمزيد. تشمل الحلول الشائعة الكابينة و loglevel و morgan و pino و Signale و Storyboard و tracer و winston.

استخدم V8 Inspector

يوفر محرك V8 JavaScript عميل تصحيح الأخطاء الذي يمكنك استخدامه في Node.js. ابدأ تطبيقًا باستخدام فحص العقدة ، على سبيل المثال

 node inspect app.js

يتوقف مصحح الأخطاء مؤقتًا عند السطر الأول ويعرض تصحيح الأخطاء> موجه:

 $ node inspect .\mycode.js < Debugger listening on ws://127.0.0.1:9229/143e23fb < For help, see: https://nodejs.org/en/docs/inspector < ok < Debugger attached. < Break on start in mycode.js:1 > 1 const count = 10; 2 3 for (i = 0; i < counter; i++) { debug>

أدخل تعليمات لعرض قائمة بالأوامر. يمكنك الدخول إلى التطبيق عن طريق إدخال:

  • تابع أو ج : متابعة التنفيذ
  • next أو n : قم بتشغيل الأمر التالي
  • خطوة أو ق : خطوة إلى وظيفة يتم استدعاؤها
  • out or o : الخروج من الوظيفة والعودة إلى بيان الاستدعاء
  • وقفة : وقفة تشغيل التعليمات البرمجية
  • watch ("myvar") : مشاهدة متغير
  • setBreakPoint () أو sb () : تعيين نقطة توقف
  • إعادة التشغيل : إعادة تشغيل البرنامج النصي
  • .exit أو Ctrl | Cmd + D : الخروج من مصحح الأخطاء

من المسلم به أن خيار التصحيح هذا مستهلك للوقت وغير عملي. استخدمه فقط عندما لا يكون هناك خيار آخر ، مثل عندما تقوم بتشغيل كود على خادم بعيد ولا يمكنك الاتصال من مكان آخر أو تثبيت برامج إضافية.

استخدم متصفح Chrome لتصحيح رمز Node.js

يبدأ خيار فحص Node.js المستخدم أعلاه خادم Web Socket الذي يستمع إلى منفذ المضيف المحلي 9229. ويبدأ أيضًا عميل تصحيح أخطاء يستند إلى النص ، ولكن من الممكن استخدام عملاء رسومية - مثل العميل المضمن في Google Chrome والمستندة إلى Chrome متصفحات مثل Chromium و Edge و Opera و Vivaldi و Brave.

لتصحيح أخطاء تطبيق ويب نموذجي ، ابدأ باستخدام الخيار –inspect لتمكين خادم Web Socket الخاص بمصحح أخطاء V8:

 node --inspect index.js

ملحوظة:

  • يُفترض أن index.js هو البرنامج النصي لإدخال التطبيق.
  • تأكد من استخدام --inspect مع شرطات مزدوجة لضمان عدم بدء عميل مصحح الأخطاء المستند إلى النص.
  • يمكنك استخدام nodemon بدلاً من العقدة إذا كنت تريد إعادة تشغيل التطبيق تلقائيًا عند تغيير الملف.

بشكل افتراضي ، لن يقبل مصحح الأخطاء سوى الاتصالات الواردة من الجهاز المحلي. إذا كنت تقوم بتشغيل التطبيق على جهاز آخر ، أو جهاز افتراضي ، أو حاوية Docker ، فاستخدم:

 node --inspect=0.0.0.0:9229 index.js
فحص العقدة
فحص العقدة الخيار.

يمكنك أيضًا استخدام --inspect-brk بدلاً من --inspect لإيقاف المعالجة (تعيين نقطة توقف) في السطر الأول حتى تتمكن من التنقل خلال الكود من البداية.

افتح متصفحًا يستند إلى Chrome وأدخل chrome://inspect في شريط العناوين لعرض الأجهزة المحلية والمتصلة بالشبكة:

أداة فحص الكروم
أداة فحص الكروم.

إذا كان تطبيق Node.js الخاص بك لا يظهر كهدف بعيد ، فإما:

  • انقر فوق فتح DevTools المخصص للعقدة واختر العنوان والمنفذ ، أو
  • تحقق من اكتشاف أهداف الشبكة ، وانقر على تكوين ، ثم أضف عنوان IP ومنفذ الجهاز الذي يعمل عليه.

انقر فوق ارتباط فحص الهدف لبدء تشغيل عميل مصحح الأخطاء DevTools. يجب أن يكون هذا مألوفًا لأي شخص استخدم DevTools لتصحيح أخطاء التعليمات البرمجية من جانب العميل:

Chrome DevTools
Chrome DevTools.

قم بالتبديل إلى لوحة Sources . يمكنك فتح أي ملف بالضغط على Cmd | Ctrl + P وإدخال اسم الملف الخاص به (مثل index.js).

ومع ذلك ، من الأسهل إضافة مجلد مشروعك إلى مساحة العمل. يتيح لك ذلك تحميل الملفات وتحريرها وحفظها مباشرةً من DevTools (سواء كنت تعتقد أن هذه فكرة جيدة فهي مسألة أخرى!)

  1. انقر فوق + إضافة مجلد إلى مساحة العمل
  2. حدد موقع مشروع Node.js الخاص بك
  3. اضغط على موافق للسماح بتغييرات الملف

يمكنك الآن تحميل الملفات من شجرة الدليل اليسرى:

لوحة Chrome DevTools Sources
لوحة Chrome DevTools Sources.

انقر فوق أي رقم سطر لتعيين نقطة توقف يُشار إليها بعلامة زرقاء.

يعتمد التصحيح على نقاط التوقف . هذه تحدد المكان الذي يجب أن يوقف فيه مصحح الأخطاء تنفيذ البرنامج ويظهر الحالة الحالية للبرنامج (المتغيرات ، مكدس الاستدعاءات ، إلخ.)

يمكنك تحديد أي عدد من نقاط التوقف في واجهة المستخدم. خيار آخر هو وضع مصحح أخطاء؛ العبارة في التعليمات البرمجية الخاصة بك ، والتي تتوقف عند إرفاق مصحح أخطاء.

قم بتحميل واستخدام تطبيق الويب الخاص بك للوصول إلى العبارة حيث يتم تعيين نقطة توقف. في المثال هنا ، يتم فتح http: // localhost: 3000 / في أي متصفح ، وسوف توقف DevTools التنفيذ على السطر 44:

نقطة توقف كروم
نقطة توقف كروم.

تعرض اللوحة اليمنى:

هل تعاني من مشاكل التوقف و WordPress؟ Kinsta هو حل الاستضافة المصمم لتوفير الوقت! تحقق من ميزاتنا
  • صف من رموز الإجراءات (انظر أدناه).
  • يسمح لك جزء المراقبة بمراقبة المتغيرات عن طريق النقر فوق الرمز + وإدخال أسمائها.
  • يُظهر جزء نقاط التوقف قائمة بجميع نقاط التوقف ويسمح بتمكينها أو تعطيلها.
  • يُظهر جزء النطاق حالة كافة المتغيرات المحلية والوحدة النمطية والعامة. سوف تقوم بفحص هذا الجزء في أغلب الأحيان.
  • يُظهر جزء Call Stack التسلسل الهرمي للوظائف التي تم استدعاؤها للوصول إلى هذه النقطة.

يتم عرض صف من رموز الإجراءات أعلاه متوقف مؤقتًا عند نقطة توقف :

أيقونات Chrome breakpoint
أيقونات Chrome breakpoint.

من اليسار إلى اليمين ، يقوم هؤلاء بتنفيذ الإجراءات التالية:

  • استئناف التنفيذ : استمر في المعالجة حتى نقطة الإيقاف التالية
  • الخطوة التالية: نفِّذ الأمر التالي ولكن ابق ضمن كتلة التعليمات البرمجية الحالية - لا تقفز إلى أي وظيفة تستدعيها
  • خطوة إلى : تنفيذ الأمر التالي والانتقال إلى أي وظيفة حسب الضرورة
  • الخطوة للخروج : استمر في المعالجة حتى نهاية الوظيفة والعودة إلى أمر الاستدعاء
  • الخطوة : مشابهة للخطوة إلا أنها لن تقفز إلى وظائف غير متزامنة
  • تعطيل كافة نقاط التوقف
  • توقف مؤقتًا عند الاستثناءات : أوقف المعالجة عند حدوث خطأ.

نقاط الفصل الشرطية

في بعض الأحيان يكون من الضروري ممارسة سيطرة أكبر على نقاط التوقف. تخيل أن لديك حلقة أكملت 1000 تكرار ، لكنك مهتم فقط بحالة آخر تكرار:

 for (let i = 0; i < 1000; i++) { // set breakpoint here }

بدلاً من النقر فوق استئناف التنفيذ 999 مرة ، يمكنك النقر بزر الماوس الأيمن فوق السطر واختيار إضافة نقطة توقف شرطية وإدخال شرط مثل i = 999 :

نقطة توقف كروم الشرطية
نقطة توقف كروم الشرطية.

يعرض Chrome نقاط التوقف الشرطية باللون الأصفر بدلاً من الأزرق. في هذه الحالة ، يتم تشغيل نقطة التوقف فقط في آخر تكرار للحلقة.

نقاط التسجيل

تنفذ نقاط السجل بشكل فعال console.log () بدون أي كود! يمكن إخراج التعبير عند تنفيذ الكود لأي سطر ، لكنه لا يوقف المعالجة ، على عكس نقطة التوقف.

لإضافة نقطة تسجيل ، انقر بزر الماوس الأيمن فوق أي سطر ، واختر إضافة نقطة سجل ، وأدخل تعبيرًا ، على سبيل المثال 'loop counter i', i :

Chrome Logpoint
نقطة تسجيل Chrome.

تقوم وحدة التحكم DevTools بإخراج loop counter i: 0 إلى loop counter i: 999 في المثال أعلاه.

استخدم كود VS لتصحيح أخطاء تطبيقات Node.js

VS Code ، أو Visual Studio Code ، هو محرر أكواد مجاني من Microsoft أصبح شائعًا بين مطوري الويب. التطبيق متاح لأنظمة Windows و macOS و Linux وتم تطويره باستخدام تقنيات الويب في إطار عمل Electron.

يدعم VS Code Node.js ولديه عميل تصحيح أخطاء مدمج. يمكن تصحيح معظم التطبيقات بدون أي تكوين ؛ سيبدأ المحرر تلقائيًا خادم التصحيح والعميل.

افتح ملف البداية (مثل index.js) ، وقم بتنشيط جزء التشغيل والتصحيح ، وانقر فوق الزر تشغيل وتصحيح الأخطاء ، واختر بيئة Node.js. انقر فوق أي سطر لتنشيط نقطة توقف تظهر كرمز دائرة حمراء. بعد ذلك ، افتح التطبيق في المستعرض كما كان من قبل - يوقف VS Code التنفيذ عند الوصول إلى نقطة التوقف:

نقطة توقف رمز VS
نقطة توقف رمز VS.

تتشابه أجزاء Variables و Watch و Call Stack و Breakpoints مع تلك التي تظهر في Chrome DevTools. يُظهر جزء البرامج النصية المحملة البرامج النصية التي تم تحميلها ، على الرغم من أن العديد منها داخلي في Node.js.

يتيح لك شريط أدوات رموز الإجراءات:

  • استئناف التنفيذ : استمر في المعالجة حتى نقطة الإيقاف التالية
  • الخطوة التالية: نفِّذ الأمر التالي لكن ابق ضمن الوظيفة الحالية - لا تقفز إلى أي وظيفة تستدعيها
  • خطوة إلى : تنفيذ الأمر التالي والانتقال إلى أي وظيفة تستدعيها
  • الخطوة للخروج : استمر في المعالجة حتى نهاية الوظيفة والعودة إلى أمر الاستدعاء
  • إعادة تشغيل التطبيق والمصحح
  • وقف التطبيق والمصحح

مثل Chrome DevTools ، يمكنك النقر بزر الماوس الأيمن فوق أي سطر لإضافة نقاط توقف شرطية ونقاط تسجيل .

لمزيد من المعلومات ، راجع التصحيح في Visual Studio Code.

تكوين التصحيح المتقدم رمز VS

قد يكون تكوين VS Code الإضافي ضروريًا إذا كنت تريد تصحيح أخطاء التعليمات البرمجية على جهاز آخر ، أو جهاز افتراضي ، أو تحتاج إلى استخدام خيارات تشغيل بديلة مثل nodemon.

يخزن VS Code تكوينات التصحيح في ملف launch.json داخل دليل .vscode في مشروعك. افتح جزء التشغيل والتصحيح ، وانقر فوق إنشاء ملف launch.json ، واختر بيئة Node.js لإنشاء هذا الملف. يتم توفير مثال على التكوين:

تكوين مصحح رمز VS
تكوين مصحح رمز VS.

يمكن تعريف أي عدد من إعدادات التكوين ككائنات في مصفوفة "configurations" . انقر فوق إضافة التكوين ... وحدد الخيار المناسب.

يمكن لتهيئة Node.js الفردية إما:

  1. بدء العملية نفسها ، أو
  2. إرفاقه بخادم Web Socket لتصحيح الأخطاء ، ربما يعمل على جهاز بعيد أو حاوية Docker.

على سبيل المثال ، لتحديد تكوين nodemon ، حدد Node.js: إعداد Nodemon وقم بتغيير البرنامج النصي لإدخال "البرنامج" إذا لزم الأمر:

 { // custom configuration "version": "0.2.0", "configurations": [ { "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "name": "nodemon", "program": "${workspaceFolder}/index.js", "request": "launch", "restart": true, "runtimeExecutable": "nodemon", "skipFiles": [ "<node_internals>/**" ], "type": "pwa-node" } ] }

احفظ ملف launch.json ويظهر nodemon ("اسم التكوين") في القائمة المنسدلة أعلى جزء التشغيل والتصحيح . انقر فوق رمز التشغيل الأخضر لبدء استخدام هذا التكوين وتشغيل التطبيق باستخدام nodemon:

تصحيح أخطاء رمز VS باستخدام nodemon
تصحيح أخطاء رمز VS باستخدام nodemon.

كما في السابق ، يمكنك إضافة نقاط توقف ونقاط توقف شرطية ونقاط تسجيل. الاختلاف الرئيسي هو أن nodemon سيعيد تشغيل الخادم تلقائيًا عند تعديل الملف.

لمزيد من المعلومات ، راجع تكوينات VS Code Launch.

يمكن أن تساعدك ملحقات VS Code التالية أيضًا في تصحيح أخطاء التعليمات البرمجية المستضافة في بيئات الخادم البعيدة أو المعزولة:

  • عن بعد - حاويات: قم بالاتصال بالتطبيقات التي تعمل في حاويات Docker
  • Remote - SSH: الاتصال بالتطبيقات التي تعمل على خادم بعيد
  • Remote - WSL: الاتصال بالتطبيقات التي تعمل على نظام Windows الفرعي لنظام Linux (WSL).

خيارات تصحيح أخطاء Node.js الأخرى

يوفر دليل تصحيح الأخطاء Node.js نصائح حول مجموعة من برامج تحرير النصوص و IDEs ، بما في ذلك Visual Studio و JetBrains WebStorm و Gitpod و Eclipse. يقدم Atom امتدادًا لتصحيح أخطاء العقدة ، والذي يدمج مصحح أخطاء Chrome DevTools في المحرر.

بمجرد تشغيل التطبيق الخاص بك ، يمكنك التفكير في استخدام خدمات تصحيح الأخطاء التجارية مثل LogRocket و Sentry.io ، والتي يمكنها تسجيل وتشغيل أخطاء العميل والخادم التي يواجهها المستخدمون الحقيقيون.

هل تحتاج إلى بعض المساعدة في تصحيح أخطاء التطبيقات؟ ابدأ هنا انقر للتغريد

ملخص

تاريخيًا ، كان تصحيح أخطاء JavaScript أمرًا صعبًا ، ولكن كانت هناك تحسينات هائلة على مدار العقد الماضي. الاختيار جيد - إن لم يكن أفضل - من الخيارات المتوفرة للغات الأخرى.

استخدم أي أداة عملية لتحديد المشكلة. لا يوجد شيء خاطئ في console.log () للبحث السريع عن الأخطاء ، ولكن قد يكون Chrome DevTools أو VS Code هو الأفضل للمشكلات الأكثر تعقيدًا. يمكن أن تساعدك الأدوات في إنشاء كود أكثر قوة ، وستقضي وقتًا أقل في إصلاح الأخطاء.

ما هي ممارسة تصحيح أخطاء Node.js التي تقسم بها؟ حصة في قسم التعليقات أدناه!