javascript - كيف أقوم بتصحيح تطبيقات Node.js؟




debugging google-chrome-devtools (20)

كيف يمكنني تصحيح تطبيق خادم Node.js؟

في الوقت الحالي ، أستخدم تصحيح الأخطاء في الغالب مع عبارات الطباعة مثل هذا:

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

يجب أن يكون هناك طريقة أفضل للتصحيح. أعلم أن Google Chrome يحتوي على مصحح أخطاء سطر أوامر. هل يتوفر مصحح الأخطاء هذا لـ Node.js أيضًا؟


يحتوي Node على مصحح الأخطاء لـ GUI المضمّن الخاص به بدءًا من الإصدار 6.3 (باستخدام DevTools من Chrome)

ما عليك سوى تمرير شارة المفتش وسيتم تزويدك بعنوان URL للمفتش:

node --inspect server.js

يمكنك أيضا كسر على السطر الأول عن طريق تمرير --inspect-brk بدلاً من ذلك.

لفتح نافذة Chrome تلقائيًا ، استخدم الوحدة النمطية 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

اقتفاء أثر

تسجيل

المكتبات التي تخرج معلومات التصحيح

المكتبات التي تعزز معلومات تتبع المكدس

المرجعية

آخر

ميراث

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


أنا شخصيا أستخدم JetBrains WebStorm كما هو IDE جافا سكريبت الوحيد الذي وجدته وهو رائع لكل من الواجهة الأمامية والخلفية JavaScript.

وهو يعمل على أنظمة تشغيل متعددة ويحتوي على تصحيح الأخطاء في Node.js (بالإضافة إلى الكثير من الأشياء الأخرى) ( http://www.jetbrains.com/webstorm/features/index.html ).

بلدي فقط 'القضايا' / عناصر الأماني هي كانت :

  1. يبدو أن المزيد من الموارد الجياع على ماك من ويندوز لم يعد يبدو مشكلة في الإصدار 6.
  2. سيكون من اللطيف إذا كان لديه دعم Snippet (مثل تلك الخاصة بـ Sublime Text 2 - أي اكتب "fun" ثم اضغط على "tab" لوضعه في وظيفة. راجع تعليقWickyNilliams أدناه - مع Live Templates ، لديك أيضًا دعم مقتطف.

إذا كنت تحتاج إلى مكتبة تسجيل قوية لـ Node.js ، يعد Tracer خيارًا أفضل.

فإنه يخرج رسائل السجل مع الطابع الزمني ، اسم الملف ، اسم الأسلوب ، رقم السطر ، المسار أو مكدس المكالمات ، وحدة تحكم اللون الدعم ، وقاعدة بيانات الدعم ، والملفات ، ونقل الدفق بسهولة. أنا المؤلف.



استخدم هذه الأوامر

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

بدء عملية العقدة الخاصة بك مع العلم -inspect .

node --inspect index.js

ثم افتح chrome://inspect in chrome. انقر على الرابط "فتح DevTools مخصصة للعقدة" أو قم بتثبيت امتداد chrome this لفتح Chrome DevTools بسهولة.

لمزيد من المعلومات ، راجع this الرابط



سيكون رمز Studio المرئي خياري للتصحيح. لا يوجد حمل لتثبيت أي أدوات أو أدوات npm install . ما عليك سوى تعيين نقطة البداية لتطبيقك في package.json و VSCode تلقائيًا لإنشاء ملف تهيئة داخل الحل. إنها مبنية على Electron ، حيث يتم بناء المحررين مثل Atom.

يعطي كود VS تجربة تصحيح مشابهة كما كان من الممكن أن يكون لديك في IDEs أخرى مثل VS ، Eclipse ، إلخ.


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

$ npm install -g browserify

الآن قم بتحريك كل var x = requires('x') المكالمات إلى ملف required.js وتشغيله:

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

(الجانب السلبي هنا هو إما أن تضطر إلى نقل أو تعليق requires في جميع ملفاتك).

تضمين bundle.js في ملف HTML مثل:

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

الآن قم بتحميل الملف في المستعرض الخاص بك واضغط F12 و viola: تصحيح في المستعرض.


كتبت نهج مختلف لتصحيح رمز Node.js وهو مستقر وبسيط للغاية. كان متوفرا على https://github.com/s-a/iron-node .

مصحح مرئي عبر النظام الأساسي مفتوحة المصدر.

التركيب:

npm install iron-node -g;

التصحيح:

iron-node yourscript.js;



هناك الكثير من الإجابات الرائعة هنا ، لكني أود أن أضيف وجهة نظري (استنادًا إلى كيفية تطور منهجي)

سجلات التصحيح

دعونا نواجه الأمر ، كلنا نحب وحدة console.log('Uh oh, if you reached here, you better run.') جيدة console.log('Uh oh, if you reached here, you better run.') وأحيانًا تعمل بشكل رائع ، لذلك إذا كنت متكتمًا على التحرك بعيدًا عن ذلك على الأقل أضف بعض بلينغ لسجلات الخاص بك مع تصحيح Visionmedia ل .

التصحيح التفاعلي

كما يمكن أن يكون تسجيل الدخول إلى وحدة التحكم مفيدًا ، لتصحيح الأخطاء بشكل احترافي ، يجب أن تشمر عن سواعدك وتتعثر فيها. قم بضبط نقاط التوقف ، وقم بالمرور عبر الكود ، وفحص النطاقات والمتغيرات لمعرفة ما يسبب ذلك السلوك الغريب. كما ذكر آخرون ، node-inspector هو في الحقيقة ركبة النحل. إنه يفعل كل ما يمكنك فعله باستخدام مصحح الأخطاء المضمّن ، ولكن باستخدام واجهة Chrome DevTools المألوفة. إذا كنت تستخدم ، مثلي ، Webstorm ، here دليل مفيد لتصحيح الأخطاء من هناك.

تتبعات المكدس

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

تسريبات الذاكرة

مع Node.js يمكننا أن نتوقع عملية خادم من المتوقع أن تبقى لفترة طويلة. ماذا تفعل إذا كنت تعتقد أنه قد نشأ بعض التسريبات سيئة؟ استخدم heapdump و Chrome DevTools لمقارنة بعض اللقطات والاطلاع على التغييرات.

لبعض المقالات المفيدة ، تحقق من

إذا كنت ترغب في مشاهدة فيديو (مقاطع)

أيا كان المسار الذي تختاره ، فقط تأكد من أنك تفهم كيف تقوم بتصحيح الأخطاء

إنه شيء مؤلم
للنظر في مشكلتك الخاصة ومعرفة
أن أنت نفسك ولا أحد آخر قد جعلها

سوفوكليس ، اياكس


هناك مشروع nodeclipse.org مفتوح المصدر nodeclipse.org (مثل ملحق Eclipse أو Enide Studio ):

http://www.nodeclipse.org/img/Nodeclipse-1-debugging.png

أصبحت Nodeclipse رقم 1 في Eclipse Top 10 الإضافات الجديدة لعام 2013 . ويستخدم مصحح أخطاء V8 معدلاً (من أدوات مطوري Google Chrome لـ Java).

برنامج Nodeclipse هو برنامج مجاني مفتوح المصدر يتم إصداره في بداية كل شهر .


يحتوي الإصدار Node.js الإصدار 0.3.4 أو أكثر على دعم التصحيح المضمن.

node debug script.js

يدوي: http://nodejs.org/api/debugger.html


يعمل IntelliJ بشكل رائع لـ Node.js.

بالإضافة إلى ذلك ، تدعم IntelliJ "تعليمات المساعدة" بشكل جيد.


يوجد عميل مصحح سطر أوامر مضمنة داخل Node.js. تحتوي سحابة 9 IDE أيضاً Debugger لطيفة (مرئية).


node-inspector يمكن أن ينقذ اليوم! استخدمه من أي متصفح يدعم WebSocket . نقاط التوقف ، منشئ ملفات التعريف ، livecoding ، الخ ... إنه أمر رائع حقا.

تثبيته مع:

npm install -g node-inspector

ثم اركض:

node-debug app.js

Brackets هو مشروع من قبل البحث Adobe الذي يتيح لك تصحيح رمز Node.js الخاص بك في Brackets محرر المصدر المفتوح. يحتوي على بعض الميزات المثيرة للاهتمام مثل التعليمة البرمجية في الوقت الحقيقي ، الفحص بأثر رجعي ، شجرة الاتصال غير المتزامنة.


تتضمن أدوات Node.js لـ Visual Studio 2012 أو 2013 مصحح أخطاء. توضح النظرة العامة here "تتضمن أدوات Node.js لـ Visual Studio الدعم الكامل لتصحيح أخطاء تطبيقات العقدة.". نظرًا لكوني جديدًا في Node.js ، ولكن لديك خلفية في .NET ، فقد عثرت على هذا الإضافة لتكون طريقة رائعة لتصحيح تطبيقات Node.js.





google-chrome-devtools