كيف يمكنني تصحيح تطبيقات Node.js؟
-
19-09-2019 - |
سؤال
كيف يمكنني تصحيح تطبيق خادم Node.js؟
الآن أنا في الغالب يستخدم تنبيه تصحيح مع تصريحات الطباعة مثل هذا:
sys.puts(sys.inspect(someVariable));
يجب أن يكون هناك طريقة أفضل للتصحيح. وأنا أعلم ذلك جوجل كروم لديه مصحح خط الأوامر. هل هذا المصحح متاح لعدة node.js كذلك؟
المحلول 3
ال V8. صدر المصحح كجزء من Google أدوات مطور الكروم يمكن استخدامها لتصحيح البرامج النصية node.js. شرح مفصل لكيفية العثور على هذه الأعمال في node.js github wiki..
نصائح أخرى
العقدة المفتش يمكن أن ينقذ اليوم! استخدامه من أي متصفح يدعم Websocket. وبعد نقاط التوقف، المناظرية، LiVeCoding، إلخ ... إنه رائع حقا.
تثبيته مع:
npm install -g node-inspector
ثم اركض:
node-debug app.js
تصحيح
التنميط
node --prof ./app.js
node --prof-process ./the-generated-log-file
heapdumps.
flamegraphs.
- 0x.
- JAM3 / DEVTOOL. ومن بعد أدوات مطور الكروم مخططات لهب
- dtrace. و ستاكفيس — معتمد فقط على smartos
- clinicjs.
اقتفاء أثر
تسجيل
المكتبات التي تخرج معلومات التصحيح
المكتبات التي تعزز معلومات تتبع المكدس
المرجعية
- مقاعد البدلاء أباتشي:
ab -n 100000 -c 1 http://127.0.0.1:9778/
- حظ
آخر
ميراث
هذه الاستخدامات للعمل ولكن لم تعد تم الحفاظ عليها أو لم تعد قابلة للتطبيق على إصدارات العقدة الحديثة.
- https://github.com/bnoordhuis/node-profiler. - استبدال الأخطاء المدمجة
- https://github.com/c4milo/node-webkit-agent. - استبدال مفتش العقدة
- https:/nodetime.com/ - بتفك
العقدة لها خاصة بها بنيت في مؤشر الأخشاب واجهة المستخدم الرسومية اعتبارا من الإصدار 6.3 (باستخدام Devyools Chrome)
ببساطة اجتياز علامة المفتشية وسوف يتم تزويدك بعنوان URL للمفتش:
node --inspect server.js
يمكنك أيضا كسر الخط الأول عن طريق المرور --inspect-brk
في حين أن.
لفتح نافذة Chrome تلقائيا، استخدم فحص العملية وحدة.
# install inspect-process globally
npm install -g inspect-process
# start the debugger with inspect
inspect script.js
node.js الإصدار 0.3.4+ لديه دعم تصحيح الأخطاء المدمج.
node debug script.js
رمز الاستوديو المرئي سيكون خياري لتصحيح الأخطاء. لا النفقات العامة لتثبيت أي أدوات أو npm install
أمور. فقط قم بتعيين نقطة البداية في تطبيقك في Package.json و VScode سيقوم تلقائيا بإنشاء ملف تكوين داخل الحل الخاص بك. انها بناء على إلكترون, ، والتي يتم بناء المحررين مثل الذرة.
يعطي رمز VS تجربة تصحيح أخطاء مماثلة كما قد يكون لديك في معالم أخرى مثل vs، كسوف، إلخ.
أنا شخصيا استخدام jetbrains webstalm. نظرا لأن JavaScript ide الوحيد الذي وجدته وهو أمر رائع لكلا الواجهة الأمامية والخلفية جافا سكريبت.
إنه يعمل على العديد من نظام التشغيل وله node.js تصحيح الأخطاء المدمجة (بالإضافة إلى طن من الأشياء الأخرى] (http://www.jetbrains.com/webstorm/features/index.html.).
عناصر "قضايا" الخاصة بي الوحيدة نكون كانت:
يبدو أنه مزيد من الموارد الجائعة على نظام التشغيل Macلم يعد يبدو مشكلة في الإصدار 6.سيكون من الرائع أن يكون دعم مقتطف (مثل تلك نص سامية 2. - أي نوع "متعة" وانقر "علامة التبويب" لوضعها في وظيفة.راجع Wickynilliams التعليق أدناه - مع القوالب الحية لديك أيضا دعم Snippet.
الكثير من الإجابات العظيمة هنا، ولكن أود إضافة رأيي (بناء على كيفية تطور نهجي)
سجلات التصحيح
دعونا نواجهها، نحن جميعا نحب جيدة console.log('Uh oh, if you reached here, you better run.')
وأحيانا يعمل هذا رائعا، لذلك إذا كنت متوقعا للتحرك بعيدا جدا عن ذلك على الأقل إضافة بعض Bling إلى سجلاتك تصحيح VisionMedia.
تصحيح الأخطاء التفاعلية
كما هو مفيد لأن تسجيل وحدة التحكم يمكن أن يكون، لتصحيح الاحترام، تحتاج إلى لفة الأكمام الخاصة بك وتتعثر في. اضبط نقاط التوقف، والخطوة من خلال التعليمات البرمجية، وتفقد النطاقات والمتغيرات لمعرفة ما يسبب هذا السلوك الغريب. كما ذكر آخرون، العقدة المفتش حقا هي الركبتين النحل. يفعل كل ما يمكنك القيام به مع مصحح الأخطاء المدمج، ولكن باستخدام واجهة Devyools Chrome المألوفة. إذا، مثلي، أنت تستخدم العاصفة, ، ومن بعد هنا هو دليل مفيد لتصحيح الأخطاء من هناك.
آثار المكدس
بشكل افتراضي، لا يمكننا تتبع سلسلة من العمليات عبر دورات مختلفة من حلقة الحدث (القراد). للحصول على هذا إلقاء نظرة على جون الطويل (ولكن ليس في الإنتاج!).
تسريبات الذاكرة
مع node.js، يمكننا الحصول على عملية الخادم المتوقع أن تبقى حتى وقت طويل. ماذا تفعل إذا كنت تعتقد أنه قد انتشر بعض التسريبات سيئة؟ يستخدم heapdump. و Chrome Devyools لمقارنة بعض اللقطات ومعرفة ما يتغير.
لبعض المقالات المفيدة، تحقق من
إذا كنت ترغب في مشاهدة الفيديو (الفيديوات) إذن
- محادثات Netflix JS - تصحيح Node.js في الإنتاج
- فيديو مثير للاهتمام من مجموعة العمل التتبع على تتبع وتصحيح node.js
- حقا مفيدة 15 دقيقة بالمعلومات على عقدة المفتش
مهما كانت المسار الذي تختاره، تأكد من أنك تفهم كيف تقوم بتصحيح الأخطاء
إنه شيء مؤلم
أن ننظر إلى مشكلتك الخاصة ومعرفة
أن أنت نفسك ولا أحد آخر جعلهsophocles، ajax.
أدوات Node.js لاستوديو Visual 2012 أو 2013 يتضمن مصححا. نظرة عامة هنا تتضمن الدول "أدوات node.js for Visual Studio دعما كاملا لتصحيح تطبيقات العقدة.". أن تكون جديدا على node.js، ولكن وجود خلفية في .NET، لقد وجدت أن هذا أضف إلى أن تكون طريقة رائعة لتصحيح تطبيقات Node.js.
رمز الاستوديو المرئي لديه حقا node.js node.js دعم تصحيح الأخطاء. إنه مجاني ومصدر مفتوح ومصدر ويعمل على نظام Linux و OS X و Windows.
يمكنك حتى التصحيح مهام المخروط والجلد, ، يجب أن تحتاج إلى ...
كتبت نهجا مختلفا لتصحيح رمز Node.js المستقر وبسيط للغاية. إنه متاح في https://github.com/sa/iron-node..
المصحح البصري المرئي منصة OpenSource.
تثبيت:
npm install iron-node -g;
تصحيح:
iron-node yourscript.js;
إذا كنت تستخدم ذرة IDE., ، يمكنك تثبيت node-debugger
صفقة.
باستخدام الإصدار Chrome 67.0.3396.62 (+)
- تشغيل node app.
العقدة - BRK = 0.0.0.0: 9229 Server.js (خادم JS Filename)
- تصفح التطبيق الخاص بك في Chrome Eg "LocalHost: Port"
- فتح devyools.
- انقر أيقونة العقدة بجانب أيقونة الجهاز الاستجابة.
ستكون هناك نافذة Devyools أخرى ستبلغ خصيصا للحصول على تطبيق Node Debugging.
لقد أنشأت أداة صغيرة أنيقة تسمى pry.js. التي يمكن أن تساعدك.
ضع عبارة بسيطة في مكان ما في التعليمات البرمجية الخاصة بك، وتشغيل البرنامج النصي الخاص بك بشكل طبيعي وسيقوم العقدة بتوقف الترابط الحالي الذي يمنحك الوصول إلى جميع المتغيرات والوظائف الخاصة بك. عرض / تحرير / حذفها في الإرادة!
pry = require('pryjs')
class FizzBuzz
run: ->
for i in [1..100]
output = ''
eval(pry.it) # magic
output += "Fizz" if i % 3 is 0
output += "Buzz" if i % 5 is 0
console.log output || i
bar: ->
10
fizz = new FizzBuzz()
fizz.run()
هناك سطر الأوامر المدمج مصحح الأخطاء العميل داخل node.js. Cloud 9 IDE لديها أيضا لطيفة جميلة (مرئية) مصحح الأخطاء.
رمز الاستوديو المرئي سوف تعمل من أجلنا في تصحيح الأخطاء.
أنا وضعت معا قصيرة node.js تصحيح الأخطاء التمهيدي على استخدام العقدة المفتش بالنسبة لأولئك الذين ليسوا متأكدين من أين تبدأ.
استخدام العاصفة Web! إنه مثالي لتصحيح تطبيقات Node.js. لديها مصحح مدمج. تحقق من المستندات هنا: https://www.jetbrains.com/help/webstorm 15.1/running-and-debugging-node-js.html.
إذا كنت بحاجة إلى مكتبة تسجيل قوية لعدة node.js، Tracer https://github.com/baryon/Tracer. هو اختيار أفضل.
تنتج رسائل السجل مع طابع زمني أو اسم الملف أو اسم الأسلوب أو رقم السطر أو المسار أو مكدس المكالمة، وحدة التحكم بالألوان الدعم، وقاعدة بيانات الدعم، ملف، نقل دفق بسهولة. أنا المؤلف.
على افتراض أنك يحتوي على مفتش عقدة مثبتا على جهاز الكمبيوتر الخاص بك (إن لم يكن، اكتب فقط "NPM Installation-Grown-Infcector") عليك فقط تشغيل:
node-inspector & node --debug-brk scriptFileName.js
ولصق URI من سطر الأوامر في متصفح WebKit (Chrome / Safari).
فقط للكمال:
ال يوفر Pycharm 3.0 + Node.js Plugin تطوير رهيبة + تجربة تصحيح +.
هناك العديد من الاحتمالات ...
- العقدة يشمل أ أداة تصحيح الأخطاء
- العقدة المفتش
- محرري رمز / معرفات (انظر تعليمات التصحيح لأحد الإجراءات التالية)
غالبا ما يتم تنفيذ دعم التصحيح باستخدام V8 بروتوكول تصحيح الأخطاء أو الأحدث بروتوكول تصحيح الكروم.
هناك المصدر المفتوح الجديد nodeclipse. المشروع (كمساعد Eclipse أو إينيد الاستوديو):
أصبح nodeclipse # 1 في Eclipse Top 10 إضافات جديدة لعام 2013. وبعد يستخدم تعديل V8. مصحح الأخطاء (من أدوات مطور جوجل كروم ل Java).
NodeClipse هو برنامج مجاني مفتوح المصدر صدر في بداية كل شهر.
Intellij. يعمل بشكل رائع لعدة node.js.
بالإضافة إلى ذلك، يدعم Intellij "مساعدة التعليمات البرمجية" جيدا.
ال netbeans. كان لدى IDE دعم node.js منذ ذلك الحين الإصدار 8.1.:
<...>
ميزة جديدة تبرز
node.js تطوير التطبيق
- New Node.js معالج المشروع
- New Node.js Ibase Wizard
- محدم جافا سكريبت المحرر
- دعم جديد لتشغيل تطبيقات node.js
- دعم جديد لتصحيح تطبيقات Node.js.
<...>
مراجع إضافية:
استخدام هذه الأوامر
DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect
طريقة سريعة وقذرة لتصحيح البرامج النصية Node.js الصغيرة مع المفضلة لديك مصحح الأخطاء سيكون لاستخدام browserify.. وبعد لاحظ أن هذا النهج لا يعمل مع أي تطبيقات تتطلب مكتبات الإدخال / الإخراج الأصلية، ولكنها جيدة بما يكفي لمعظم النصوص الصغيرة.
$ npm install -g browserify
الآن نقل كل ما تبذلونه var x = requires('x')
يدعو إلى أ requires.js
ملف وتشغيل:
$ browserify requires.js -s window -o bundle.js
(الجانب السلبي هنا هو أنك إما عليك التحرك أو التعليق requires
في جميع ملفاتك.)
تشمل bundle.js
في ملف HTML مثل ذلك:
<script type="text/javascript" src="bundle.js"></script>
الآن قم بتحميل الملف في المتصفح الخاص بك واضغط F12 وفيولا: تصحيح في المتصفح.
NDB هي تجربة تصحيح أخطاء محسنة لعدة node.js، تم تمكينها بواسطة Chrome DevTools