Pertanyaan Bagaimana cara saya mendebug aplikasi Node.js?


Bagaimana cara saya mendebug aplikasi server Node.js?

Saat ini saya kebanyakan menggunakan peringatan debugging dengan pernyataan cetak seperti ini:

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

Harus ada cara yang lebih baik untuk melakukan debug. saya tahu itu Google Chrome memiliki debugger baris perintah. Apakah debugger ini tersedia untuk Node.js juga?


1394
2017-12-15 22:50


asal


Jawaban:


simpul-inspektur bisa menyelamatkan hari! Gunakan dari semua browser yang mendukung WebSocket. Breakpoints, profiler, livecoding, dll ... Ini benar-benar luar biasa.

Instal dengan:

npm install -g node-inspector

Lalu lari:

node-debug app.js

1193
2017-10-15 17:17



Debugging

Profiling

  1. node --prof ./app.js
  2. node --prof-process ./the-generated-log-file

Heapdumps

Flamegraphs

Tracing

Logging

Perpustakaan yang menghasilkan informasi debug

Perpustakaan yang meningkatkan informasi jejak stack

Benchmarking

Lain

Warisan

Penggunaan ini berfungsi tetapi tidak lagi dipertahankan atau tidak lagi berlaku untuk versi node modern.


672
2018-05-12 21:37



Itu V8 debugger dirilis sebagai bagian dari Google Alat Pengembang Chrome dapat digunakan untuk men-debug skrip Node.js. Penjelasan rinci tentang cara kerjanya dapat ditemukan di Node.js GitHub wiki.

Ada juga ndb, baris perintah debugger yang ditulis dalam Node.js itu sendiri.


208
2018-03-29 08:57



Node memiliki miliknya sendiri built in GUI debugger seperti versi 6.3 (menggunakan DevTools Chrome)

Nodes builtin GUI debugger

Cukup lewati bendera inspektur dan Anda akan diberikan URL ke inspektur:

node --inspect server.js

Anda juga dapat mematahkan pada baris pertama dengan lewat --inspect-brk sebagai gantinya.

Untuk membuka jendela Chrome secara otomatis, gunakan periksa proses modul.

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js

151
2017-09-14 14:51



Node.js versi 0.3.4+ memiliki dukungan debug bawaan.

node debug script.js

Manual: http://nodejs.org/api/debugger.html


83
2018-01-16 01:20



Saya pribadi menggunakannya JetBrains WebStorm karena ini satu-satunya IDE JavaScript yang saya temukan yang bagus untuk JavaScript frontend dan backend.

Ia bekerja pada beberapa OS dan memiliki debugging Node.js yang sudah ada di dalamnya (serta satu ton barang lainnya) (http://www.jetbrains.com/webstorm/features/index.html).

Satu-satunya 'masalah' / daftar harapan saya adalah  adalah:

  1. Tampaknya lebih banyak sumber daya lapar di Mac daripada Windows Tampaknya tidak lagi menjadi masalah di versi 6.
  2. Akan lebih baik jika memiliki dukungan Snippet (seperti yang ada pada Teks Sublim 2 - mis. ketik 'fun' dan ketuk 'tab' untuk memasukkan fungsi. Lihat komentar @WickyNilliams di bawah - Dengan Live Templates Anda juga memiliki dukungan snippet.

52
2018-05-03 14:42



Kode Visual Studio akan menjadi pilihan saya untuk debugging. Tidak ada biaya tambahan untuk memasang alat apa pun atau npm install barang. Cukup setel titik awal aplikasi Anda di package.json dan VSCode akan secara otomatis membuat file konfigurasi di dalam solusi Anda. Ini membangun Elektron, di mana editor seperti Atom dibangun.

VS Code memberikan pengalaman debugging serupa seperti yang Anda miliki   ada di IDE lain seperti VS, Eclipse, dll.

enter image description here enter image description here


52
2018-02-19 10:21



Theseus adalah proyek oleh penelitian Adobe yang memungkinkan Anda mendebug kode Node.js Anda di editor Sumber Terbuka mereka Tanda kurung. Ini memiliki beberapa fitur menarik seperti cakupan kode real-time, pemeriksaan retroaktif, pohon panggilan asynchronous.

screenshot


36
2018-05-14 22:21



Banyak jawaban yang bagus di sini, tetapi saya ingin menambahkan pandangan saya (berdasarkan bagaimana pendekatan saya berkembang)

Log Debug

Mari kita hadapi itu, kita semua cinta yang baik console.log('Uh oh, if you reached here, you better run.') dan terkadang itu berfungsi dengan baik, jadi jika Anda enggan untuk berpindah terlalu jauh dari itu, setidaknya tambahkan bling ke log Anda Debug Visionmedia.

Debug Interaktif

Sama berharganya dengan pencatatan konsol, untuk melakukan debug secara profesional, Anda perlu menyingsingkan lengan baju dan terjebak. Setel titik temu, ikuti kode Anda, periksa cakupan dan variabel untuk melihat apa yang menyebabkan perilaku aneh tersebut. Seperti yang telah disebutkan orang lain, simpul-inspektur benar-benar lebah-lutut. Ia melakukan semua yang dapat Anda lakukan dengan debugger built-in, tetapi menggunakan antarmuka Chrome DevTools yang familier. Jika, seperti saya, Anda gunakan Webstorm, kemudian sini adalah panduan praktis untuk melakukan debug dari sana.

Jejak Stack

Secara default, kita tidak bisa melacak serangkaian operasi di siklus yang berbeda dari loop peristiwa (kutu). Untuk menyiasati ini, lihatlah longjohn (tetapi tidak dalam produksi!).

Kebocoran Memori

Dengan Node.js kita dapat memiliki proses server yang diharapkan dapat tetap terjaga untuk waktu yang cukup lama. Apa yang Anda lakukan jika Anda mengira telah menyebabkan kebocoran yang buruk? Menggunakan heapdump dan Chrome DevTools untuk membandingkan beberapa foto dan melihat apa saja yang berubah.


Untuk beberapa artikel yang bermanfaat, periksa

Jika Anda merasa seperti menonton video (s) kemudian

Jalur apa pun yang Anda pilih, pastikan Anda memahami bagaimana Anda melakukan debug

enter image description here

Itu adalah hal yang menyakitkan
Untuk melihat masalah Anda sendiri dan tahu
  Bahwa Anda sendiri dan tidak ada orang lain yang berhasil

Sophocles, Ajax


31
2017-09-15 15:33



Alat Node.js untuk Visual Studio 2012 atau 2013 termasuk debugger. Gambarannya sini menyatakan "Node.js Tools untuk Visual Studio termasuk dukungan lengkap untuk debugging aplikasi node.". Menjadi baru untuk Node.js, tetapi memiliki latar belakang di. NET, saya telah menemukan ini menambahkan menjadi cara yang bagus untuk men-debug aplikasi Node.js.


21
2018-05-02 12:30



Kode Visual Studio memiliki dukungan debugging Node.js yang sangat bagus. Ini gratis, open source dan cross-platform dan berjalan di Linux, OS X dan Windows.

Anda bahkan dapat melakukan debug tugas mendengus dan meneguk, jika Anda perlu ...


19
2017-09-09 00:08