Bagaimana cara men-debug aplikasi server Node.js?
Saat ini saya lebih banyak menggunakan debugging lansiran dengan pernyataan cetak seperti ini:
sys.puts(sys.inspect(someVariable));
Pasti ada cara yang lebih baik untuk melakukan debug. Saya tahu bahwa Google Chrome memiliki debugger baris perintah. Apakah debugger ini juga tersedia untuk Node.js?
javascript
node.js
debugging
google-chrome-devtools
Fabian Jakobs
sumber
sumber
--inspect-brk
BUKAN DARI--inspect
jika Anda ingin men-debug kode server yang sebenarnya pada waktu buka. Lihat stackoverflow.com/questions/59596138Jawaban:
simpul-inspektur bisa menyelamatkan hari! Gunakan dari browser yang mendukung WebSocket . Breakpoints, profiler, livecoding, dll ... Sangat mengagumkan.
Instal dengan:
Lalu lari:
sumber
Debugging
Pembuatan profil
node --prof ./app.js
node --prof-process ./the-generated-log-file
Heapdumps
Flamegraf
Menelusuri
Penebangan
Perpustakaan yang menghasilkan informasi debug
Perpustakaan yang meningkatkan informasi jejak tumpukan
Benchmarking
ab -n 100000 -c 1 http://127.0.0.1:9778/
Lain
Warisan
Ini digunakan untuk bekerja tetapi tidak lagi dipertahankan atau tidak lagi berlaku untuk versi node modern.
sumber
look
modul, sebagaimana ditunjukkan dalam stackoverflow.com/questions/12864221/nodejs-memory- profilingnprof
+ .v8.log
node --prof
The V8 debugger dirilis sebagai bagian dari Google Developer Tools Chrome dapat digunakan untuk debug Node.js script. Penjelasan terperinci tentang cara kerjanya dapat ditemukan di wiki Nit.js GitHub .
sumber
https://medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27#.fitvuaumt
Node memiliki debugger GUI bawaannya sendiri pada versi 6.3 (menggunakan DevTools Chrome)
Cukup lewati bendera inspektur dan Anda akan diberikan URL ke inspektur:
Anda juga dapat mematahkan pada baris pertama
--inspect-brk
sebagai gantinya.sumber
Node.js versi 0.3.4+ memiliki dukungan debugging bawaan.
node debug script.js
Manual: http://nodejs.org/api/debugger.html
sumber
--debug
kedebug
tanpa strip. Begitulah akhirnya saya berhasil. Ini membingungkan itu--debug
dandebug
melakukan dua hal yang berbeda.app is already running...
", ketika saya mencoba untuk melanjutkan dan saya menemukan sebuah pernyataan yang mencoba untuk mendapatkan input, itu menjatuhkan saya kembali pada prompt debug bukannya membiarkan saya memasukkan input yang diperlukan.Visual Studio Code akan menjadi pilihan saya untuk debugging. Tidak ada overhead menginstal alat atau
npm install
barangapa pun. Cukup setel titik awal aplikasi Anda di package.json dan VSCode akan secara otomatis membuat file konfigurasi di dalam solusi Anda. Itu dibangun di atasElectron, tempat editor seperti Atom dibangun.sumber
Saya pribadi menggunakan JetBrains WebStorm karena itu adalah satu-satunya IDE JavaScript yang saya temukan yang bagus untuk JavaScript frontend dan backend.
Ia bekerja pada banyak OS dan memiliki debugging Node.js bawaan (serta banyak hal lainnya) ( http://www.jetbrains.com/webstorm/features/index.html ).
Satu-satunya 'masalah' / item wishlist saya
adalahadalah :Tampaknya lebih banyak sumber daya lapar di Mac daripada WindowsTampaknya tidak lagi menjadi masalah di versi 6.Akan lebih baik jika memiliki dukungan Snippet (seperti yang ada pada Sublime Text 2 - yaitu ketik 'fun' dan ketuk 'tab' untuk memasukkan fungsi.Lihat komentar @WickyNilliams di bawah ini - Dengan Template Langsung Anda juga memiliki dukungan cuplikan.sumber
Banyak jawaban bagus di sini, tetapi saya ingin menambahkan pandangan saya (berdasarkan bagaimana pendekatan saya berkembang)
Debug Log
Mari kita hadapi itu, kita semua suka yang baik
console.log('Uh oh, if you reached here, you better run.')
dan kadang-kadang itu bekerja dengan baik, jadi jika Anda segan untuk pindah terlalu jauh darinya setidaknya tambahkan beberapa bling ke log Anda dengan debug Visionmedia .Debugging Interaktif
Berguna seperti pembuatan konsol, untuk melakukan debug secara profesional Anda perlu menyingsingkan lengan baju Anda dan terjebak. Tetapkan breakpoints, selesaikan kode Anda, periksa lingkup dan variabel untuk melihat apa yang menyebabkan perilaku aneh itu. Seperti yang telah disebutkan orang lain, simpul-inspektur sebenarnya adalah lebah-lutut. Itu melakukan semua yang dapat Anda lakukan dengan debugger bawaan, tetapi menggunakan antarmuka Chrome DevTools yang akrab. Jika, seperti saya, Anda menggunakan Webstorm , maka di sini ada panduan praktis untuk melakukan debug dari sana.
Jejak Tumpukan
Secara default, kami tidak dapat melacak serangkaian operasi di berbagai siklus loop acara (kutu). Untuk menyiasatinya, lihat longjohn (tetapi tidak dalam produksi!).
Kebocoran Memori
Dengan Node.js kita dapat memiliki proses server yang diharapkan tetap terjaga untuk waktu yang cukup lama. Apa yang Anda lakukan jika Anda pikir itu telah menimbulkan beberapa kebocoran jahat? Gunakan heapdump dan Chrome DevTools untuk membandingkan beberapa foto dan melihat apa yang berubah.
Untuk beberapa artikel bermanfaat, periksa
Jika Anda merasa ingin menonton video, maka
Apa pun jalur yang Anda pilih, pastikan Anda memahami cara Anda melakukan debug
sumber
Theseus adalah proyek penelitian Adobe yang memungkinkan Anda men-debug kode Node.js Anda dalam kurung Editor Open Source mereka . Ini memiliki beberapa fitur menarik seperti jangkauan kode waktu-nyata, inspeksi retroaktif, pohon panggilan asinkron.
sumber
Alat Node.js untuk Visual Studio 2012 atau 2013 termasuk debugger. Tinjauan umum di sini menyatakan "Alat Node.js untuk Visual Studio termasuk dukungan lengkap untuk debugging aplikasi simpul.". 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.
sumber
Visual Studio Code memiliki dukungan debug Node.js yang sangat bagus. Ini gratis, open source dan lintas platform dan berjalan di Linux, OS X dan Windows.
Anda bahkan dapat men-debug tugas kasar dan menelan , jika Anda perlu ...
sumber
Saya menulis pendekatan berbeda untuk men-debug kode Node.js yang stabil dan sangat sederhana. Ini tersedia di https://github.com/sa/iron-node .
Debugger visual lintas-platform opensource.
Instalasi:
npm install iron-node -g;
Debug:
iron-node yourscript.js;
sumber
Jika Anda menggunakan Atom IDE , Anda dapat menginstal
node-debugger
paket.sumber
Menggunakan Chrome Versi 67.0.3396.62 (+)
Akan ada jendela DevTools lain yang akan muncul secara khusus untuk debugging aplikasi simpul.
sumber
Saya membuat alat kecil yang rapi bernama pry.js yang dapat membantu Anda.
Letakkan pernyataan sederhana di suatu tempat dalam kode Anda, jalankan skrip Anda secara normal dan simpul akan menghentikan utas saat ini yang memberi Anda akses ke semua variabel dan fungsi Anda. Lihat / edit / hapus sesuka mereka!
sumber
Ada klien debugger baris perintah bawaan di dalam Node.js. Cloud 9 IDE juga memiliki debugger (visual) yang cukup bagus .
sumber
Kode Visual Studio akan bekerja untuk kita dalam debugging.
sumber
Saya mengumpulkan primer debugging Node.js singkat tentang penggunaan node-inspector bagi mereka yang tidak yakin harus mulai dari mana.
sumber
Gunakan Webstorm! Ini sempurna untuk debugging aplikasi Node.js. Ini memiliki debugger bawaan. Lihat dokumen di sini: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html
sumber
Mulai proses simpul Anda dengan flag --inspect .
node --inspect index.js
dan kemudian Buka
chrome://inspect
di chrome. Klik tautan "Buka DevTools khusus untuk Node" atau instal ini ekstensi chrome untuk membuka DevTools chrome dengan mudah.Untuk info lebih lanjut lihat tautan ini
sumber
Jika Anda membutuhkan pustaka logging yang tangguh untuk Node.js, Tracer https://github.com/baryon/tracer adalah pilihan yang lebih baik.
Ini output pesan log dengan cap waktu, nama file, nama metode, nomor baris, path atau panggilan stack, konsol warna dukungan, dan dukungan database, file, stream transport dengan mudah. Akulah penulisnya.
sumber
Dengan anggapan Anda telah menginstal node-inspector di komputer Anda (jika tidak, cukup ketik 'npm install -g node-inspector') Anda hanya perlu menjalankan:
Dan rekatkan URI dari baris perintah ke browser WebKit (Chrome / Safari).
sumber
Hanya untuk kelengkapan:
The PyCharm 3.0 + Node.js Plugin menawarkan pengembangan + run + men-debug pengalaman yang luar biasa .
sumber
IntelliJ bekerja sangat baik untuk Node.js.
Selain itu, IntelliJ mendukung 'Bantuan Kode' dengan baik.
sumber
Ada banyak kemungkinan ...
Dukungan debug sering diimplementasikan menggunakan Protokol Debugging v8 atau Protokol Debugging Chrome yang lebih baru .
sumber
Ada proyek Nodeclipse open-source baru (sebagai plugin Eclipse atau Enide Studio ):
Nodeclipse menjadi # 1 di Eclipse Top 10 NEW Plugins untuk 2013 . Ini menggunakan debugger V8 yang dimodifikasi (dari Google Chrome Developer Tools for Java).
Nodeclipse adalah perangkat lunak open-source gratis yang dirilis pada awal setiap bulan .
sumber
The NetBeans IDE telah memiliki Node.js mendukung sejak versi 8.1 :
Referensi tambahan:
sumber
Gunakan perintah ini
sumber
ndb adalah pengalaman debug yang ditingkatkan untuk Node.js, diaktifkan oleh Chrome DevTools
https://github.com/GoogleChromeLabs/ndb
sumber
Cara cepat dan kotor untuk men-debug skrip Node.js kecil dengan debugger peramban favorit Anda adalah dengan menggunakan browserify . Perhatikan bahwa pendekatan ini tidak berfungsi dengan aplikasi apa pun yang memerlukan pustaka I / O asli, tetapi cukup baik untuk sebagian besar skrip kecil.
Sekarang pindahkan semua
var x = requires('x')
panggilan Anda kerequires.js
file dan jalankan:(Kelemahan di sini adalah Anda harus memindahkan atau mengomentari
requires
semua file Anda.)Sertakan
bundle.js
dalam file HTML seperti:Sekarang muat file di browser Anda dan tekan F12dan viola: debug di browser.
sumber