Jak debugować węzeł.aplikacje js?
Jak debugować węzeł.aplikacja js server?
W tej chwili używam głównie debugowania alertów z instrukcjami print takimi jak:
sys.puts(sys.inspect(someVariable));
Musi być lepszy sposób na debugowanie. Wiem, że Google Chrome ma debugger wiersza poleceń. Czy ten debugger jest dostępny dla Node.js też?
30 answers
Node-inspector może uratować sytuację! Użyj go z dowolnej przeglądarki obsługującej WebSocket . Punkty przerwania, profiler, livecoding itp... To jest naprawdę niesamowite.
Zainstaluj za pomocą:
npm install -g node-inspector
Następnie uruchom:
node-debug app.js
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-13 15:23:04
Debugowanie
Profilowanie
node --prof ./app.js
node --prof-process ./the-generated-log-file
Heapdumps
Flamegraphs
Śledzenie
Logowanie
Biblioteki, które wypisują informacje debugujące
Biblioteki poprawiające śledzenie stosu informacje
Benchmarking
-
Ławka Apacza :
ab -n 100000 -c 1 http://127.0.0.1:9778/
- wrk
Inne
Dziedzictwo
Są używane do pracy, ale nie są już utrzymywane lub nie mają zastosowania do nowoczesnego węzła wersje.
- https://github.com/bnoordhuis/node-profiler - zastąpiony przez wbudowane debugowanie
- https://github.com/c4milo/node-webkit-agent - zastąpiony przez node inspector
- https://nodetime.com / - nieistniejący
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-13 22:18:43
Debuger V8 wydany jako część Google Chrome Developer Tools może być używany do debugowania węzła.Skrypty js. Szczegółowe wyjaśnienie tego, jak to działa, można znaleźć w węźle .js GitHub wiki .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-31 13:27:29
Node ma swój własnywbudowany debugger graficzny od wersji 6.3 (przy użyciu DevTools Chrome)
Po prostu podaj flagę inspektora, a otrzymasz adres URL do inspektora:
node --inspect server.js
Możesz również złamać pierwszą linię, przechodząc --inspect-brk
.
Aby otworzyć okno Chrome automatycznie, użyj modułu inspect-process .
# install inspect-process globally
npm install -g inspect-process
# start the debugger with inspect
inspect script.js
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-24 09:46:49
Węzeł.js wersja 0.3.4 + ma wbudowaną obsługę debugowania.
node debug script.js
Instrukcja: http://nodejs.org/api/debugger.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-21 16:56:03
Visual Studio Code będzie moim wyborem do debugowania. Nie musisz instalować żadnych narzędzi ani npm install
rzeczy.
Wystarczy ustawić punkt początkowy aplikacji w pakiecie.json i VSCode automatycznie utworzą plik konfiguracyjny w Twoim rozwiązaniu. Zbudowany jest na Elektronie , na którym zbudowany jest Atom.
VS Code daje podobne doświadczenie debugowania, jakie możesz mieć miał w innych Idach jak VS, Eclipse, itd.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-25 15:03:40
Osobiście używam JetBrains WebStorm ponieważ jest to jedyne IDE JavaScript, które znalazłem, które jest świetne zarówno dla frontend i Backend JavaScript.
Działa na wielu systemach operacyjnych i ma węzeł.wbudowane debugowanie js (jak również mnóstwo innych rzeczy] (http://www.jetbrains.com/webstorm/features/index.html).
Moje jedyne "problemy" /elementy listy życzeń to byli :
- [[9]}wydaje się być bardziej zasobożerny na Macu niż Windows to nie dłuższa wydaje się problemem w wersji 6.
-
byłoby miło, gdyby miał wsparcie dla Snippet (jak te z Sublime Text 2 - tzn. wpisz " fun "i naciśnij "tab", aby umieścić funkcję.Zobacz komentarz @WickyNilliams poniżej - z Live Templates masz również wsparcie dla snippet.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 20:26:03
Theseus to projekt firmy Adobe research, który pozwala debugować węzeł.kod js w edytorze Open Source . Ma kilka ciekawych funkcji, takich jak pokrycie kodu w czasie rzeczywistym, kontrola wsteczna, asynchroniczne drzewo wywołań.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-19 00:11:11
Wiele świetnych odpowiedzi tutaj, ale chciałbym dodać mój pogląd (w oparciu o to, jak moje podejście ewoluowało)
Debug Logs
Spójrzmy prawdzie w oczy, wszyscy kochamy dobry console.log('Uh oh, if you reached here, you better run.')
i czasami działa to świetnie, więc jeśli jesteś powściągliwy, aby przenieść się zbyt daleko od niego, dodaj chociaż trochę błyskotliwości do swoich dzienników za pomocą debugowania visionmedia za pomocą debugowania.
Debugowanie Interaktywne
Jak przydatne może być rejestrowanie konsoli, aby profesjonalnie debugować, musisz zakasać rękawy i utknąć. Set punkty przerwania, przejrzyj kod, Sprawdź zakresy i zmienne, aby zobaczyć, co powoduje to dziwne zachowanie. Jak już inni wspomnieli, node-inspector to naprawdę pszczoły-kolana. Robi wszystko, co możesz zrobić za pomocą wbudowanego debugera, ale używając znanego interfejsu Chrome DevTools. Jeśli, podobnie jak ja, używasz Webstorm, to tutaj jest przydatny przewodnik po debugowaniu stamtąd.
Ślady Stosu
Domyślnie nie możemy prześledzić serii operacji różne cykle pętli zdarzeń (kleszcze). Aby to obejść, spójrz na longjohn (ale nie w produkcji!).
Wycieki Pamięci
Z Węzłem.js możemy mieć proces serwera, który będzie działał przez dłuższy czas. Co zrobić, jeśli myślisz, że to spowodowało jakieś paskudne przecieki? Użyj heapdump i Chrome DevTools, aby porównać niektóre migawki i zobaczyć, co się zmienia.
Aby znaleźć przydatne artykuły, sprawdź
Jeśli masz ochotę obejrzeć film(y) to
- Netflix js Talks-węzeł debugowania.js w produkcji
- ciekawy filmik zGrupy Roboczej ds. śledzenia i debugowania węzła.js
- naprawdę pouczające 15-minutowe wideo na node-inspector
Jakąkolwiek drogę wybierzesz, po prostu bądź na pewno rozumiesz jak debugujesz
To bolesna rzecz
To look at your own trouble and know
Że ty sam i nikt inny tego nie zrobiłSofokles, Ajax
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-08 10:28:05
Węzeł.js Tools dla Visual Studio 2012 lub 2013 zawiera debugger. Przegląd Tutaj stwierdza " węzeł.js Tools dla Visual Studio zawiera pełną obsługę debugowania aplikacji węzła.". Bycie nowym W Node.js, ale mając tło w. NET, znalazłem ten dodatek jako świetny sposób na debugowanie węzła.aplikacje js.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 20:33:53
Visual Studio Code ma naprawdę ładny węzeł.obsługa debugowania js. Jest darmowy, open source i cross-platform i działa na Linuksie, OS X i Windows.
Możesz nawet debugować zadania grunt i gulp , jeśli zajdzie taka potrzeba...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-20 10:41:57
Napisałem inne podejście do węzła debugowania.kod js, który jest stabilny i jest niezwykle prosty. Jest on dostępny pod adresem https://github.com/s-a/iron-node .
Opensource cross-platform Visual debugger.
Instalacja:
npm install iron-node -g;
Debugowanie:
iron-node yourscript.js;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-08 15:04:45
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-20 10:37:11
Stworzyłem małe, zgrabne narzędzie o nazwie pry.js {[3] } może Ci pomóc.
Umieść proste polecenie gdzieś w kodzie, uruchom skrypt normalnie, a node zatrzyma bieżący wątek dając Ci dostęp do wszystkich zmiennych i funkcji. Przeglądaj/edytuj/usuń je do woli!
pry = require('pryjs')
class FizzBuzz
run: ->
for i in [1..100]
output = ''
eval(pry.it) # magic
output += "Fizz" if i % 3 is 0
output += "Buzz" if i % 5 is 0
console.log output || i
bar: ->
10
fizz = new FizzBuzz()
fizz.run()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-26 00:51:12
Wewnątrz węzła znajduje się wbudowany klient debuggera .js. Cloud 9 IDE ma również całkiem ładny (wizualny) debugger .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 02:25:06
Visual Studio Code będzie działać dla nas w debugowaniu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-15 10:02:20
Ułożyłem krótki węzeł.js debugging primer on using the node-inspector dla tych, którzy nie są pewni, od czego zacząć.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-21 18:31:17
Rozpocznij proces węzła z flagą --inspect.
node --inspect index.js
A następnie otwórz chrome://inspect
w chrome. Kliknij łącze "Open dedicated DevTools for Node" lub zainstaluj to rozszerzenie chrome, aby łatwo otworzyć chrome DevTools.
Aby uzyskać więcej informacji, zapoznaj się z Ten link
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-09 19:05:32
Jeśli potrzebujesz potężnej biblioteki logowania dla węzła.JS, Tracer https://github.com/baryon/tracer to lepszy wybór.
Wysyła komunikaty dziennika z znacznikiem czasu, nazwą pliku, nazwą metody, numerem linii, ścieżką lub stosem wywołań, konsolą kolorów wsparcia i obsługą bazy danych, pliku, transportu strumienia łatwo. Jestem autorem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 19:29:41
Zakładając, że na twoim komputerze jest zainstalowany node-inspector (jeśli nie, wpisz 'npm install-g node-inspector'), musisz po prostu uruchomić:
node-inspector & node --debug-brk scriptFileName.js
I wklej URI z wiersza poleceń do przeglądarki WebKit (Chrome / Safari).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 20:28:14
Tylko dla kompletności:
Węzeł PyCharm 3.0+.js Plugin oferuje niesamowite development + run + debug experience.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-20 10:35:23
Użyj Webstorm! Jest idealny do debugowania węzła.aplikacje js. Posiada wbudowany debugger. Sprawdź dokumenty tutaj: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-25 19:13:43
Jest nowy projekt open-source nodeclipse (jako wtyczka Eclipse lub Enide Studio):
Http://www.nodeclipse.org/img/Nodeclipse-1-debugging.png
Nodeclipse stał się #1 w Eclipse Top 10 nowych wtyczek dla 2013. Używa zmodyfikowanego debugera V8 (z Google Chrome Developer Tools for Java).
Nodeclipse jest wolnym oprogramowaniem open-source wydawanym na początku każdego miesiąca .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-20 10:34:04
Using Chrome Version 67.0.3396.62 (+)
- Uruchom aplikację węzła
Node --inspect-brk = 0.0.0.0: 9229 server.js (server js filename)
-
[[3]} przeglądanie aplikacji w chrome, np. "localhost: port"
- Otwórz DevTools.
- Kliknij ikonę węzła obok ikony urządzenia reagującego.
Pojawi się kolejne okno DevTools, które pojawi się specjalnie dla węzła debugowania app.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-22 10:54:55
IntelliJ działa wspaniale dla Node.js.
Ponadto IntelliJ dobrze obsługuje 'Code Assistance'.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-05 03:34:42
Istnieje wiele możliwości...
- węzeł zawiera narzędzie debugujące ]}
- node-inspector
- edytory kodu / IDE (patrz instrukcje debugowania dla jednego z następujących)
Obsługa debugowania jest często zaimplementowana przy użyciu V8 Debugging Protocol lub nowszego Chrome Debugging Protokół .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-21 14:19:13
Szybki i brudny sposób debugowania małych węzłów.Skrypty js z ulubionym debugerem przeglądarkibędą używać browserify. Zauważ, że to podejście nie działa z żadnymi aplikacjami, które wymagają natywnych bibliotek We / Wy, ale jest wystarczająco dobre dla większości małych skryptów.
$ npm install -g browserify
Teraz Przenieś wszystkie wywołania var x = requires('x')
do pliku requires.js
i uruchom:
$ browserify requires.js -s window -o bundle.js
(minusem jest to, że musisz przenieść lub skomentować requires
we wszystkich swoich plikach.)
Include the bundle.js
w pliku HTML jak tak:
<script type="text/javascript" src="bundle.js"></script>
Teraz Załaduj plik w przeglądarce i naciśnij F12 i viola: debug w przeglądarce.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-20 10:39:23
The NetBeans IDE has had Node.obsługa js od wersji 8.1:
<...>
New Feature Highlights
Węzeł.Tworzenie aplikacji js
- Nowy Węzeł.js Project wizard
- Nowy Węzeł.js Express wizard
- Enhanced JavaScript Editor
- Nowe wsparcie dla uruchomionego węzła.aplikacje js
- Nowe wsparcie dla węzła debugowania.aplikacje js.
<...>
Dodatkowe referencje:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-20 10:47:06
node-debug -p 8888 scriptFileName.js
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-07 15:53:27
Użyłbym GOOD by Walmart Labs. To da radę i jest bardzo elastyczny:
var hapi = require('hapi');
var good = require('good');
var server = hapi.createServer('localhost', 5000,{});
server.route({SOME ROUTE HERE});
server.start();
var options = {
subscribers: {
'console': ['ops', 'request', 'log', 'error'],
'http://localhost/logs': ['log']
}
};
server.pack.require('good', options, function (err) {
if (!err) {
console.log('Plugin loaded successfully');
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-20 10:36:08