


Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js
Bagaimana untuk menyahpepijat kod Nod anda? Artikel berikut akan memperkenalkan kepada anda dua cara biasa untuk menyahpepijat Node.js Ia mempunyai nilai rujukan tertentu dan saya harap ia akan membantu anda.
Banyak kali, saya bimbang tentang penyahpepijatan Node.js dan hanya menggunakan kaedah mengganggu console.log, tetapi sebenarnya Node.js juga boleh semudah penyahpepijatan pelayar.
Persekitaran artikel ini:
mac Chrome 94.0.4606.81 node v12.12.0 vscode Version: 1.61.1
Contoh artikel ini
Contoh artikel ini menggunakan model bawang yang telah diterokai sebelum ini. yang index.js
dalam direktori akar Seperti berikut:
const Koa = require('koa'); const app = new Koa(); console.log('test') // 中间件1 app.use((ctx, next) => { console.log(1); next(); console.log(2); }); // 中间件 2 app.use((ctx, next) => { console.log(3); next(); console.log(4); }); app.listen(9000, () => { console.log(`Server is starting`); });
Protokol Pemeriksa V8 Chrome DevTools
Protokol Pemeriksa v8 ialah protokol penyahpepijatan yang baru ditambah dalam nodejs v6.3 . Ia berinteraksi dengan Klien/IDE melalui soket web dan berdasarkan alat penyemak imbas Chrome /Chromium menyediakan antara muka penyahpepijatan grafik.
Kami memasuki direktori akar projek dan melaksanakan (perhatikan port 8888, yang akan digunakan kemudian):
node --inspect=8888 index.js
Hasilnya adalah seperti berikut:
Hasilnya ialah pautan——ws://127.0.0.1:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d
. Pautan ini ialah alamat websocket yang Node.js dan Chrome gunakan untuk berkomunikasi sebelum ini Melalui komunikasi websocket, kita boleh melihat hasil Node.js dalam Chrome dalam masa nyata.
Cara untuk memasuki antara muka penyahpepijatan Chrome
Cara pertama (cuba sendiri tetapi tidak berhasil)
Buka http://localhost:8888/json/list
, di mana 8888
ialah parameter --inspect
di atas.
[ { "description": "node.js instance", "devtoolsFrontendUrl": "chrome-devtools://devtools/bundled/js_app.html?experiments=true&v8only=true&ws=localhost:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d", "devtoolsFrontendUrlCompat": "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=localhost:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d", "faviconUrl": "https://nodejs.org/static/images/favicons/favicon.ico", "id": "5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d", "title": "index.js", "type": "node", "url": "file:///Users/gpingfeng/Documents/Personal/Test/test-onion/index.js", "webSocketDebuggerUrl": "ws://localhost:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d" } ]
Banyak maklumat mengatakan bahawa anda boleh mengaksesnya terus melalui devtoolsFrontendUrl
, tetapi saya mencubanya dan ia tidak berjaya. [Mungkin berkaitan dengan persekitaran saya]
Kaedah kedua
Saya menyemak maklumat dan menemui penyelesaian yang sepadan dalam stackoverflow, seperti berikut:
devtools://devtools/bundled/inspector.html?experiments=true&ws=127.0.0.1:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d
di mana devtools://devtools/bundled/inspector.html?experiments=true
ditetapkan dan parameter ws
sepadan dengan alamat soket web.
Anda boleh melihat antara muka seperti berikut:
Kaedah ketiga
Pelayar Chrome membuka mendengar HTTP antara muka Halaman, buka alat dev, selepas melaksanakan node --inspect=8888 index.js
anda boleh melihat ikon ini, klik:
dan halaman penyahpepijatan yang sama seperti penyemak imbas akan muncul, seperti Sumber Skrip Panel View, prestasi pemantauan Panel Profil dan banyak lagi.
Selain itu, anda boleh melawati chrome://inspect/#devices
untuk melihat semua pemeriksaan yang sedang dipantau oleh penyemak imbas.
Penyahpepijatan Vscode
Selain penyemak imbas, semua IDE utama menyokong penyahpepijatan Node.js Artikel ini menggunakan Vscode sebagai contoh.
Konfigurasi Pelancaran
Buka halaman penyahpepijatan dan tambahkan konfigurasi pelancaran pada projek Node kami:
Pilih Node.js
Ini akan menjana fail yang sepadan .vscode/launch.json
dalam direktori akar projek (sudah tentu anda juga boleh menciptanya secara manual), di mana program
merujuk kepada kemasukan fail, dan ${workspaceFolder}
merujuk kepada direktori akar.
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "pwa-node", "request": "launch", "name": "Launch Program", "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}/index.js" } ] }
Tekan F5, atau klik butang berikut:
Keputusan:
Ya Seperti yang anda lihat, nilai skop semasa, timbunan panggilan dan maklumat lain boleh dipaparkan di sebelah kiri, dan fungsi seperti penyahpepijatan langkah demi langkah dan memulakan semula juga boleh digunakan di sebelah kanan atas, iaitu sangat berkuasa.
Lampirkan pada Tindakan Proses Nod
Dengan Lampirkan pada Tindakan Proses Nod, kami boleh menyahpepijat terus proses Node.js yang sedang berjalan.
Sebagai contoh, mari kita mulakan projek dahulu——npm run start
.
Kemudian command shift p
(tetingkap Ctrl Shift p
), masukkan Attach to Node Process Action
, tekan Enter, kemudian pilih proses berjalan dan tekan Enter, anda boleh nyahpepijat kod seperti yang dikonfigurasikan di atas.
Ringkasan
Artikel ini meringkaskan dua cara biasa untuk nyahpepijat Node.js. Node.js pertama menghantar maklumat ke penyemak imbas Chrome melalui soket web dan kami nyahpepijat terus dalam Chrome. Yang kedua ialah menyahpepijat melalui Konfigurasi Pelancaran Vscode dan konfigurasi tersuai. Melalui Lampirkan pada Tindakan Proses Nod, anda boleh menyahpepijat kod Node.js yang sedang berjalan tanpa konfigurasi.
Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs! !
Atas ialah kandungan terperinci Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perkhidmatan Node yang dibina berdasarkan bukan sekatan dan dipacu peristiwa mempunyai kelebihan penggunaan memori yang rendah dan sangat sesuai untuk mengendalikan permintaan rangkaian besar-besaran. Di bawah premis permintaan besar-besaran, isu yang berkaitan dengan "kawalan memori" perlu dipertimbangkan. 1. Mekanisme kutipan sampah V8 dan had ingatan Js dikawal oleh mesin kutipan sampah

Artikel ini akan memberi anda pemahaman yang mendalam tentang memori dan pengumpul sampah (GC) enjin NodeJS V8 saya harap ia akan membantu anda!

Memilih imej Docker untuk Node mungkin kelihatan seperti perkara remeh, tetapi saiz dan potensi kelemahan imej itu boleh memberi kesan yang ketara pada proses dan keselamatan CI/CD anda. Jadi bagaimana kita memilih imej Node.js Docker yang terbaik?

Modul fail ialah enkapsulasi operasi fail asas, seperti membaca/menulis/membuka/menutup/memadam fail, dsb. Ciri terbesar modul fail ialah semua kaedah menyediakan dua versi **segerak** dan ** asynchronous**, dengan Kaedah dengan akhiran penyegerakan adalah semua kaedah penyegerakan, dan kaedah yang tidak semuanya adalah kaedah heterogen.

Node 19 telah dikeluarkan secara rasmi Artikel ini akan memberi anda penjelasan terperinci tentang 6 ciri utama Node.js 19. Saya harap ia akan membantu anda!

Bagaimanakah Node.js melakukan GC (pengumpulan sampah)? Artikel berikut akan membawa anda melaluinya.

Gelung peristiwa ialah bahagian asas Node.js dan mendayakan pengaturcaraan tak segerak dengan memastikan bahawa utas utama tidak disekat Memahami gelung peristiwa adalah penting untuk membina aplikasi yang cekap. Artikel berikut akan memberi anda pemahaman yang mendalam tentang gelung acara dalam Node.

Sebab mengapa nod tidak boleh menggunakan arahan npm adalah kerana pembolehubah persekitaran tidak dikonfigurasikan dengan betul Penyelesaiannya ialah: 1. Buka "Sistem Sifat"; 2. Cari "Pembolehubah Persekitaran" -> "Pembolehubah Sistem", dan kemudian edit persekitaran. pembolehubah; 3. Cari lokasi folder nodejs;
