Jadual Kandungan
Contoh artikel ini
Protokol Pemeriksa V8 Chrome DevTools
Cara untuk memasuki antara muka penyahpepijatan Chrome
Penyahpepijatan Vscode
Konfigurasi Pelancaran
Lampirkan pada Tindakan Proses Nod
Ringkasan
Rumah hujung hadapan web tutorial js Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

Nov 30, 2021 pm 07:01 PM
node.js kod nyahpepijat

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.

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

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
Salin selepas log masuk

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`);
});
Salin selepas log masuk

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
Salin selepas log masuk

Hasilnya adalah seperti berikut:

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

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"
    }
]
Salin selepas log masuk

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
Salin selepas log masuk

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:

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

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:

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

dan halaman penyahpepijatan yang sama seperti penyemak imbas akan muncul, seperti Sumber Skrip Panel View, prestasi pemantauan Panel Profil dan banyak lagi.

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

Selain itu, anda boleh melawati chrome://inspect/#devices untuk melihat semua pemeriksaan yang sedang dipantau oleh penyemak imbas.

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

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:

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

Pilih Node.js

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod 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"
    }
  ]
}
Salin selepas log masuk

Tekan F5, atau klik butang berikut:

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

Keputusan:

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

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.

Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

1Mari kita bincangkan tentang dua cara untuk menyahpepijat kod Node.js

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Artikel tentang kawalan memori dalam Node Artikel tentang kawalan memori dalam Node Apr 26, 2023 pm 05:37 PM

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

Penjelasan grafik terperinci tentang memori dan GC enjin Node V8 Penjelasan grafik terperinci tentang memori dan GC enjin Node V8 Mar 29, 2023 pm 06:02 PM

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

Mari kita bincangkan tentang cara memilih imej Node.js Docker terbaik? Mari kita bincangkan tentang cara memilih imej Node.js Docker terbaik? Dec 13, 2022 pm 08:00 PM

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?

Mari bercakap secara mendalam tentang modul Fail dalam Node Mari bercakap secara mendalam tentang modul Fail dalam Node Apr 24, 2023 pm 05:49 PM

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.js 19 dikeluarkan secara rasmi, mari bercakap tentang 6 ciri utamanya! Node.js 19 dikeluarkan secara rasmi, mari bercakap tentang 6 ciri utamanya! Nov 16, 2022 pm 08:34 PM

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!

Mari bercakap tentang mekanisme GC (pengumpulan sampah) dalam Node.js Mari bercakap tentang mekanisme GC (pengumpulan sampah) dalam Node.js Nov 29, 2022 pm 08:44 PM

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

Mari kita bincangkan tentang gelung acara dalam Node Mari kita bincangkan tentang gelung acara dalam Node Apr 11, 2023 pm 07:08 PM

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.

Apakah yang perlu saya lakukan jika nod tidak boleh menggunakan arahan npm? Apakah yang perlu saya lakukan jika nod tidak boleh menggunakan arahan npm? Feb 08, 2023 am 10:09 AM

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;

See all articles