باعتبارك مطور Node.js، من المحتمل أنك واجهت الإحباط الناتج عن تعقب الأخطاء المراوغة في تطبيقاتك. يعد تصحيح الأخطاء مهارة أساسية يمكن أن توفر عليك ساعات من الحيرة وتساعدك على كتابة تعليمات برمجية أكثر قوة. في هذا المنشور، سنستكشف بعض التقنيات والأدوات القوية لتصحيح أخطاء تطبيقات Node.js.
لنبدأ بأداة تصحيح الأخطاء الأساسية والتي غالبًا ما يتم الاستهانة بها: console.log(). على الرغم من أن الأمر قد يبدو بدائيًا، إلا أن الاستخدام الاستراتيجي لـ console.log() يمكن أن يكون فعالاً بشكل مدهش.
function calculateTotal(items) { console.log('Items received:', items); let total = 0; for (let item of items) { console.log('Processing item:', item); total = item.price; } console.log('Total calculated:', total); return total; }
نصيحة احترافية: استخدم console.table() للحصول على عرض أكثر تنظيماً للمصفوفات والكائنات:
console.table(items);
يأتي Node.js مزودًا بمصحح أخطاء مدمج يمكنك استخدامه عن طريق تشغيل البرنامج النصي الخاص بك باستخدام علامة الفحص:
node inspect app.js
يمكنك بعد ذلك استخدام أوامر مثل cont وnext وstep وwatch للتنقل خلال التعليمات البرمجية الخاصة بك. على الرغم من أن هذه الطريقة قوية، إلا أنها قد تكون مرهقة بعض الشيء بالنسبة للتطبيقات المعقدة.
يوفر VS Code إمكانيات تصحيح ممتازة لـ Node.js. إليك كيفية إعداده:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Debug Node.js Program", "program": "${workspaceFolder}/app.js" } ] }
الآن يمكنك تعيين نقاط التوقف في التعليمات البرمجية الخاصة بك والبدء في تصحيح الأخطاء باستخدام F5.
يمكنك استخدام Chrome DevTools لتصحيح أخطاء تطبيقات Node.js:
node --inspect app.js
تمنحك هذه الطريقة إمكانية الوصول إلى القوة الكاملة لأدوات تصحيح الأخطاء في Chrome.
تسمح لك وحدة تصحيح الأخطاء بإضافة مخرجات تصحيح انتقائية إلى تطبيقك:
const debug = require('debug')('myapp:server'); debug('Server starting on port 3000');
لتمكين هذه السجلات، قم بتعيين متغير بيئة DEBUG:
DEBUG=myapp:server node app.js
يمكن أن توفر لك المعالجة الصحيحة للأخطاء الكثير من الوقت في تصحيح الأخطاء:
process.on('unhandledRejection', (reason, promise) => { console.log('Unhandled Rejection at:', promise, 'reason:', reason); // Application specific logging, throwing an error, or other logic here });
استخدام غير متزامن/انتظار يمكن أن يجعل تصحيح التعليمات البرمجية غير المتزامنة أسهل:
async function fetchData() { try { const response = await fetch('https://api.example.com/data'); const data = await response.json(); console.log('Data received:', data); return data; } catch (error) { console.error('Error fetching data:', error); } }
لتصحيح الأداء، استخدم ملف التعريف المدمج:
node --prof app.js
يؤدي هذا إلى إنشاء ملف سجل يمكنك تحليله باستخدام:
node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt
إذا كنت تشك في حدوث تسرب للذاكرة، فيمكنك استخدام وحدة heapdump:
const heapdump = require('heapdump'); // Somewhere in your code heapdump.writeSnapshot((err, filename) => { console.log('Heap dump written to', filename); });
يمكنك بعد ذلك تحليل تفريغ الكومة باستخدام Chrome DevTools.
تصحيح الأخطاء هو فن بقدر ما هو علم. يجب أن تمنحك هذه الأدوات والتقنيات أساسًا متينًا لمعالجة الأخطاء الأكثر إرباكًا في تطبيقات Node.js الخاصة بك. تذكر أن مفتاح التصحيح الفعال غالبًا ما يكون مزيجًا من الأدوات الصحيحة، ومنهجًا منظمًا، وفي بعض الأحيان، نظرة جديدة.
ما هي تقنيات تصحيح الأخطاء التي تستخدمها في Node.js؟ شارك نصائحك وتجاربك في التعليقات أدناه!
تصحيح أخطاء سعيد!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3