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




debugging google-chrome-devtools (25)

تم دعم Node.js منذ طرح الإصدار 8.1 من NetBeans IDE:

<...>

ميزة جديدة يسلط الضوء

تطوير تطبيق Node.js

  • معالج مشروع جديد Node.js
  • معالج Node.js Express جديد
  • محرر جافا سكريبت محسن
  • دعم جديد لتشغيل تطبيقات Node.js
  • دعم جديد لتصحيح تطبيقات Node.js.

<...>

مراجع إضافية:

  1. NetBeans Wiki / NewAndNoteworthyNB81 .
  2. Node.js Express App في NetBeans IDE ، Geertjan-Oracle .

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

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

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

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


إذا كنت تستخدم Atom IDE ، فيمكنك تثبيت حزمة node-debugger .



بافتراض تثبيت عقدة المفتش على جهاز الكمبيوتر الخاص بك (إذا لم يكن الأمر كذلك ، فقط اكتب "npm install -g node-inspector") عليك فقط تشغيل:

node-inspector & node --debug-brk scriptFileName.js

قم بلصق URI من سطر الأوامر إلى مستعرض WebKit (Chrome / Safari).


طريقة سريعة - وسخة لتصحيح البرامج النصية 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 الإصدار 0.3.4 أو أكثر على دعم التصحيح المضمن.

node debug script.js

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


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

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

أنا شخصيا أستخدم 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 ، لديك أيضًا دعم مقتطف.

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

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


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

node --inspect index.js

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

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


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



أنا خلقت أداة صغيرة نظيفة تسمى 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()

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

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


هناك مشروع 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 ، يعد Tracer خيارًا أفضل.

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


يحتوي 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


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


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

يوجد أيضاً ndb ، مصحح سطر أوامر مكتوب في Node.js نفسه.


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

تثبيته مع:

npm install -g node-inspector

ثم اركض:

node-debug app.js

وأود أن استخدام GOOD قبل Walmart Labs. ستقوم بالمهمة ، وهي مرنة للغاية:

var hapi = require('hapi');
var good = require('good');
var server = hapi.createServer('localhost', 5000,{});
server.route({SOME ROUTE HERE});
server.start();

var options = {
subscribers: {
    'console':               ['ops', 'request', 'log', 'error'],
    'http://localhost/logs': ['log']
    }
};
server.pack.require('good', options, function (err) {

    if (!err) {
        console.log('Plugin loaded successfully');
    }
});

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



استخدم inbuilt وأبسط واحد أي match()على السلسلة. لتحقيق ما تتطلع إليه ، افعل هذا:

var stringData ="anyString Data";

var subStringToSearch = "any";

// This will give back the substring if matches and if not returns null
var doesContains = stringData.match(subStringToSearch);

if(doesContains !=null) {
    alert("Contains Substring");
}






javascript node.js debugging google-chrome-devtools