Sebagai pembangun Node.js, anda mungkin menghadapi kekecewaan menjejaki pepijat yang sukar difahami dalam aplikasi anda. Penyahpepijatan ialah kemahiran penting yang boleh menjimatkan masa anda menggaru kepala dan membantu anda menulis kod yang lebih mantap. Dalam siaran ini, kami akan meneroka beberapa teknik dan alatan berkuasa untuk menyahpepijat aplikasi Node.js.
Mari kita mulakan dengan alat penyahpepijatan yang paling asas tetapi sering dipandang remeh: console.log(). Walaupun ia kelihatan primitif, penggunaan strategik console.log() boleh menjadi sangat berkesan.
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; }
Petua pro: Gunakan console.table() untuk paparan tatasusunan dan objek yang lebih berstruktur:
console.table(items);
Node.js disertakan dengan penyahpepijat terbina dalam yang boleh anda gunakan dengan menjalankan skrip anda dengan bendera periksa:
node inspect app.js
Anda kemudian boleh menggunakan arahan seperti samb, seterusnya, langkah dan tonton untuk menavigasi kod anda. Walaupun berkuasa, kaedah ini agak menyusahkan untuk aplikasi yang kompleks.
Kod VS menawarkan keupayaan penyahpepijatan yang sangat baik untuk Node.js. Begini cara untuk menyediakannya:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Debug Node.js Program", "program": "${workspaceFolder}/app.js" } ] }
Kini anda boleh menetapkan titik putus dalam kod anda dan mula menyahpepijat dengan F5.
Anda boleh menggunakan Chrome DevTools untuk menyahpepijat aplikasi Node.js:
node --inspect app.js
Kaedah ini memberi anda akses kepada kuasa penuh alat penyahpepijat Chrome.
Modul nyahpepijat membolehkan anda menambah output penyahpepijatan terpilih pada aplikasi anda:
const debug = require('debug')('myapp:server'); debug('Server starting on port 3000');
Untuk mendayakan log ini, tetapkan pembolehubah persekitaran DEBUG:
DEBUG=myapp:server node app.js
Pengendalian ralat yang betul boleh menjimatkan banyak masa penyahpepijatan:
process.on('unhandledRejection', (reason, promise) => { console.log('Unhandled Rejection at:', promise, 'reason:', reason); // Application specific logging, throwing an error, or other logic here });
Menggunakan async/menunggu boleh menjadikan kod tak segerak anda lebih mudah untuk nyahpepijat:
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); } }
Untuk penyahpepijatan prestasi, gunakan pemprofil terbina dalam:
node --prof app.js
Ini menjana fail log yang boleh anda analisis dengan:
node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt
Jika anda mengesyaki kebocoran memori, anda boleh menggunakan modul heapdump:
const heapdump = require('heapdump'); // Somewhere in your code heapdump.writeSnapshot((err, filename) => { console.log('Heap dump written to', filename); });
Anda kemudian boleh menganalisis longgokan timbunan menggunakan Chrome DevTools.
Penyahpepijatan adalah seni sama seperti sains. Alat dan teknik ini seharusnya memberi anda asas yang kukuh untuk menangani walaupun pepijat yang paling membingungkan dalam aplikasi Node.js anda. Ingat, kunci kepada penyahpepijatan yang berkesan selalunya ialah gabungan alatan yang betul, pendekatan sistematik dan kadangkala, sepasang mata yang segar.
Apakah teknik penyahpepijatan anda untuk Node.js? Kongsi petua dan pengalaman anda dalam ulasan di bawah!
Selamat menyahpepijat!
Atas ialah kandungan terperinci Menyahpepijat Aplikasi Node.js: Petua dan Trik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!