etc./StackOverFlow

Node.js 애플리케이션을 어떻게 디버깅합니까?

청렴결백한 만능 재주꾼 2022. 1. 22. 07:11
반응형

질문자 :Fabian Jakobs


Node.js 서버 애플리케이션을 어떻게 디버깅합니까?

지금은 주로 다음과 같은 인쇄 문으로 경고 디버깅을 사용하고 있습니다.

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

더 나은 디버깅 방법이 있어야 합니다. Google 크롬 에 명령줄 디버거가 있다는 것을 알고 있습니다. 이 디버거를 Node.js에서도 사용할 수 있습니까?



node-inspector 는 하루를 절약할 수 있습니다! WebSocket을 지원하는 모든 브라우저에서 사용하십시오. 중단점, 프로파일러, 라이브코딩 등... 정말 대단합니다.

다음을 사용하여 설치하십시오.

 npm install -g node-inspector

그런 다음 다음을 실행합니다.

 node-debug app.js

daralthus

디버깅

프로파일링

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

힙 덤프

플레임그래프

트레이싱

벌채 반출

디버깅 정보를 출력하는 라이브러리

스택 추적 정보를 향상시키는 라이브러리

벤치마킹

다른

유산

작동하는 데 사용되지만 더 이상 유지 관리되지 않거나 최신 노드 버전에 더 이상 적용되지 않습니다.


balupton

Google Chrome 개발자 도구 의 일부로 출시된 V8 디버거를 사용하여 Node.js 스크립트를 디버그할 수 있습니다. 작동 방식에 대한 자세한 설명은 Node.js GitHub wiki 에서 찾을 수 있습니다.


Fabian Jakobs

Node에는 버전 6.3(Chrome의 DevTools 사용) 부터 GUI 디버거가 내장되어 있습니다.

노드 내장 GUI 디버거

인스펙터 플래그를 전달하기만 하면 인스펙터에 대한 URL이 제공됩니다.

 node --inspect server.js

대신 --inspect-brk 를 전달하여 첫 번째 줄에서 중단할 수도 있습니다.


Alister

Node.js 버전 0.3.4 이상에는 디버깅 지원이 내장되어 있습니다.

node debug script.js

매뉴얼: http://nodejs.org/api/debugger.html


JulianW

Visual Studio Code 는 디버깅을 위한 선택입니다. npm install 을 설치하는 오버헤드가 없습니다. package.json에서 앱의 시작점을 설정하기만 하면 VSCode가 솔루션 내부에 구성 파일을 자동으로 생성합니다. 그것은 Atom과 같은 편집기가 구축된 Electron 을 기반으로 합니다.

VS Code는 VS, Eclipse 등과 같은 다른 IDE에서와 유사한 디버깅 경험을 제공합니다.

여기에 이미지 설명 입력 여기에 이미지 설명 입력


Shreyas

저는 개인적으로 JetBrains WebStorm 이 프론트엔드와 백엔드 자바스크립트 모두에 좋은 유일한 자바스크립트 IDE이기 때문에 사용합니다.

그것은 여러 OS의 작동 및] 기타 물건의 톤뿐만 아니라 (Node.js를 내장 디버깅이 ( http://www.jetbrains.com/webstorm/features/index.html ).

내 유일한 '이슈'/위시리스트 항목 ~이다 있었다 :

  1. Windows보다 Mac에서 리소스를 더 많이 사용하는 것 같습니다. 버전 6에서는 더 이상 문제가 되지 않습니다.
  2. Sublime Text 2 와 같은 Snippet 지원이 있으면 좋을 것입니다. 즉, 'fun'을 입력하고 'tab'을 눌러 기능을 입력합니다. 아래 @WickyNilliams 댓글을 참조하세요. 라이브 템플릿을 사용하면 스니펫도 지원합니다.

isNaN1247

여기에 많은 훌륭한 답변이 있지만 내 견해를 추가하고 싶습니다(내 접근 방식이 어떻게 발전했는지에 따라)

디버그 로그

직시합시다. 우리 모두는 좋은 console.log('Uh oh, if you reached here, you better run.') 사랑하고 때로는 잘 작동하므로 너무 멀리 이동하는 것을 주저한다면 최소한 다음을 추가하십시오. Visionmedia의 디버그 를 사용하여 로그에 일부 블링을 적용합니다.

대화형 디버깅

콘솔 로깅이 편리한 만큼 전문적으로 디버그하려면 소매를 걷어붙이고 끼어들어야 합니다. 중단점을 설정하고, 코드를 단계별로 실행하고, 범위와 변수를 검사하여 이상한 동작을 일으키는 원인을 확인하세요. 다른 사람들이 언급했듯이 node-inspector는 실제로 bees-knee입니다. 내장 디버거로 할 수 있는 모든 작업을 수행하지만 친숙한 Chrome DevTools 인터페이스를 사용합니다. 저처럼 Webstorm 을 사용한다면 여기 에서 디버깅에 대한 편리한 가이드가 있습니다.

스택 추적

기본적으로 이벤트 루프(틱)의 서로 다른 주기에서 일련의 작업을 추적할 수 없습니다. 이 문제를 해결하려면 longjohn을 살펴보십시오(프로덕션에서는 아님).

메모리 누수

Node.js를 사용하면 상당한 시간 동안 서버 프로세스를 유지할 수 있습니다. 그것이 일부 불쾌한 누출을 일으켰다고 생각한다면 어떻게 하시겠습니까? heapdump 와 Chrome DevTools를 사용하여 일부 스냅샷을 비교하고 변경 사항을 확인하세요.


유용한 기사를 보려면 다음을 확인하십시오.

동영상을 보고 싶다면

어떤 경로를 선택하든 디버깅 방법을 이해하고 있는지 확인하십시오.

여기에 이미지 설명 입력

고통스러운 일이다
자신의 고민을 보고 알기 위해
당신 자신과 그 누구도 해내지 못했다는 것

소포클레스, 아약스


Philip O'Brien

테세우스 는 오픈 소스 편집기 Brackets 에서 Node.js 코드를 디버그할 수 있는 Adobe 연구 프로젝트입니다. 실시간 코드 적용, 소급 검사, 비동기 호출 트리와 같은 몇 가지 흥미로운 기능이 있습니다.

스크린샷


Sindre Sorhus

Visual Studio 2012 또는 2013용 Node.js 도구 에는 디버거가 포함되어 있습니다. 여기 의 개요는 "Visual Studio용 Node.js 도구에는 노드 앱 디버깅에 대한 완전한 지원이 포함되어 있습니다."라고 나와 있습니다. Node.js를 처음 사용하지만 .NET에 대한 배경 지식이 있기 때문에 이 추가 기능이 Node.js 애플리케이션을 디버그하는 좋은 방법이라는 것을 알았습니다.


John81

Visual Studio Code 에는 정말 멋진 Node.js 디버깅 지원이 있습니다. 무료, 오픈 소스 및 크로스 플랫폼이며 Linux, OS X 및 Windows에서 실행됩니다.

필요한 경우 grunt 및 gulp 작업을 디버그할 수도 있습니다.


hans

안정적이고 매우 간단한 Node.js 코드를 디버그하는 다른 접근 방식을 작성했습니다. https://github.com/sa/iron-node 에서 사용할 수 있습니다.

여기에 이미지 설명 입력

오픈 소스 크로스 플랫폼 비주얼 디버거.

설치:

npm install iron-node -g;

디버그:

iron-node yourscript.js;


Stephan Ahlf

Atom IDE를 사용하는 경우 node-debugger 패키지를 설치할 수 있습니다.


Uchiha Itachi

Chrome 버전 67.0.3396.62(+) 사용

  1. 노드 앱 실행

노드 --inspect-brk=0.0.0.0:9229 server.js(서버 js 파일 이름)

  1. 크롬에서 앱 탐색(예: "localhost:port")
  2. 개발자 도구를 엽니다.
  3. 반응형 장치 아이콘 옆에 있는 노드 아이콘을 클릭합니다.

여기에 이미지 설명 입력

노드 앱 디버깅을 위해 특별히 팝업되는 또 다른 DevTools 창이 있습니다.

여기에 이미지 설명 입력


babidi

나는 당신을 도울 수 있는 pry.js 라는 깔끔한 작은 도구를 만들었습니다.

코드의 어딘가에 간단한 명령문을 넣고 스크립트를 정상적으로 실행하면 노드가 현재 스레드를 중지하여 모든 변수와 함수에 액세스할 수 있도록 합니다. 마음대로 조회/수정/삭제!

 var 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()

Baylee

Node.js에는 내장 명령줄 디버거 클라이언트가 있습니다. Cloud 9 IDE에는 매우 멋진 (시각적) 디버거도 있습니다.


yojimbo87

어디서부터 시작해야 할지 잘 모르는 사람들을 위해 node-inspector 사용에 대한 짧은 Node.js 디버깅 입문서를 작성했습니다.


Josh Habdas

Visual Studio Code 는 디버깅에 도움이 될 것입니다.


Surendra Parchuru

웹스톰을 사용하세요! Node.js 애플리케이션 디버깅에 적합합니다. 내장 디버거가 있습니다. 여기에서 문서를 확인하십시오: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html


OneMoreQuestion

Node.js를 위한 강력한 로깅 라이브러리가 필요한 경우 Tracer https://github.com/baryon/tracer 가 더 나은 선택입니다.

타임스탬프, 파일 이름, 메소드 이름, 라인 번호, 경로 또는 호출 스택, 지원 색상 콘솔, 지원 데이터베이스, 파일, 스트림 전송이 포함된 로그 메시지를 출력합니다. 나는 저자입니다.


Baryon Lee

컴퓨터에 node-inspector가 설치되어 있다고 가정하고(그렇지 않은 경우 'npm install -g node-inspector' 입력) 다음을 실행하기만 하면 됩니다.

 node-inspector & node --debug-brk scriptFileName.js

그리고 명령줄의 URI를 WebKit(Chrome/Safari) 브라우저에 붙여넣습니다.


Shaheen Ghiassy

완전성을 위해:

PyCharm 3.0 + Node.js 플러그인은 멋진 개발 + 실행 + 디버그 경험을 제공 합니다.


Alex

--inspect 플래그로 노드 프로세스를 시작합니다.

node --inspect index.js

chrome://inspect 를 엽니다. "노드용 전용 DevTools 열기" 링크를 클릭하거나 크롬 DevTools를 쉽게 열 수 있도록 이 크롬 확장 프로그램을 설치하십시오.

자세한 정보는 링크를 참조하십시오


Rahul Kumar

새로운 오픈 소스 Nodeclipse 프로젝트(Eclipse 플러그인 또는 Enide Studio )가 있습니다.

Nodeclipse는 2013년 Eclipse Top 10 NEW Plugins 에서 1위가 되었습니다. 수정된 V8 디버거(Java용 Google Chrome 개발자 도구)를 사용합니다.

Nodeclipse는 매달 초에 출시되는 무료 오픈 소스 소프트웨어입니다.


Paul Verest

IntelliJ 는 Node.js에서 훌륭하게 작동합니다.

또한 IntelliJ는 '코드 지원'을 잘 지원합니다.


卢声远 Shengyuan Lu

많은 가능성이 있습니다 ...

디버그 지원은 종종 v8 디버깅 프로토콜 또는 최신 Chrome 디버깅 프로토콜을 사용하여 구현됩니다.


cmd

NetBeans IDE는 버전 8.1 부터 Node.js를 지원합니다.

<...>

새로운 기능 하이라이트

Node.js 애플리케이션 개발

  • 새 Node.js 프로젝트 마법사
  • 새 Node.js Express 마법사
  • 향상된 자바스크립트 편집기
  • Node.js 애플리케이션 실행을 위한 새로운 지원
  • Node.js 애플리케이션 디버깅을 위한 새로운 지원.

<...>

추가 참조:

  1. NetBeans 위키 / NewAndNoteworthyNB81 .
  2. NetBeans IDE의 Node.js Express 앱, Geertjan-Oracle .

Sergey Vyacheslavovich Brunov

이 명령을 사용하십시오

 DEBUG_LEVEL=all node file.js DEBUG=* node file.js node file.js --inspect

Zahirul Haque

ndb는 Chrome DevTools에서 활성화된 Node.js용 개선된 디버깅 환경입니다.

https://github.com/GoogleChromeLabs/ndb


Mukesh

node-debug -p 8888 scriptFileName.js

matt burns

출처 : http:www.stackoverflow.com/questions/1911015/how-do-i-debug-node-js-applications

반응형