문제

어떻게 디버깅 Node.js 서버 응용 프로그램?

바로 지금 나는 주로 사용 경고 디버깅 인쇄 문 다음과 같다:

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

이 있어야 더 나은 방법으로 디버깅.내가 알고 있는 구글 크롬 는 명령줄 디버거.은 이 디버거 가능 Node.js 뿐만 아니라?

도움이 되었습니까?

해결책 3

그만큼 v8 Debugger는 Google의 일부로 출시되었습니다 크롬 개발자 도구 Node.js 스크립트를 디버그하는 데 사용할 수 있습니다. 이 작동 방식에 대한 자세한 설명은 node.js github 위키.

다른 팁

노드 인스 스펙터 하루를 구할 수 있습니다! 모든 브라우저 지원에서 사용하십시오 웹 소켓. 브레이크 포인트, 프로파일 러, 라이브 코딩 등 ... 정말 대단합니다.

다음과 같이 설치하십시오.

npm install -g node-inspector

그런 다음 실행 :

node-debug app.js

디버깅

프로파일 링

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

heapdumps

화염 그래프

트레이싱

벌채 반출

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

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

벤치마킹

다른

유산

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

노드에는 고유 한 것이 있습니다 내장 버전 6.3 기준 GUI 디버거 (Chrome 's DevTools 사용)

Nodes builtin GUI debugger

검사관 깃발을 전달하면 검사관에게 URL이 제공됩니다.

node --inspect server.js

당신은 또한 통과하여 첫 번째 줄을 깰 수 있습니다 --inspect-brk 대신에.

크롬 창을 자동으로 열려면 검사 프로세스 기준 치수.

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

# start the debugger with inspect
inspect script.js

node.js 버전 0.3.4+에는 내장 디버깅 지원이 있습니다.

node debug script.js

수동: http://nodejs.org/api/debugger.html

비주얼 스튜디오 코드 디버깅을위한 나의 선택이 될 것입니다. 도구를 설치하는 오버 헤드가 없습니다 npm install 물건. 앱의 시작점을 package.json 및 vscode에서 솔루션 내에 자동으로 구성 파일을 작성합니다. 그것은 구축되었습니다 전자, Atom과 같은 편집자가 제작 된 곳.

VS 코드는 VS, Eclipse 등과 같은 다른 IDE에서와 마찬가지로 유사한 디버깅 경험을 제공합니다.

enter image description here enter image description here

나는 개인적으로 사용합니다 JetBrains Webstorm 내가 찾은 유일한 JavaScript IDE이므로 Frontend와 Backend JavaScript 모두에 적합합니다.

여러 OS에서 작동하며 Node.js 디버깅 내장 (및 기타 많은 것들)이 있습니다.http://www.jetbrains.com/webstorm/features/index.html).

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

  1. Windows보다 Mac에서 더 배가 고픈 것 같습니다. 버전 6에서 더 이상 문제가되지 않는 것 같습니다.
  2. 스 니펫 지지대가 있으면 좋을 것입니다 ( 숭고한 텍스트 2 - 즉 'fun'을 입력하고 '탭'을 탭하여 함수를 넣습니다. 아래 @wickynilliams 댓글을 참조하십시오 - 라이브 템플릿을 사용하면 스 니펫 지원이 있습니다.

테세우스 Adobe Research의 프로젝트로, 오픈 소스 편집기에서 Node.js 코드를 디버깅 할 수 있습니다. 브래킷. 실시간 코드 커버리지, 소급 검사, 비동기 통화 트리와 같은 흥미로운 기능이 있습니다.

screenshot

의 많은 훌륭한 대답을 여기에,하지만 나를 추가하고 싶 내 보기(는 방법에 따라 나 접근 진화)

디버깅 기록

의 그것을 직면하자,우리는 모든 좋은 사랑 console.log('Uh oh, if you reached here, you better run.') 때로는 좋은 작품,그래서 당신은 말하는 이는 너무 멀리서 그것도 추가 몇 가지 보석을 로그로 Visionmedia 의 디버.

대화형 디버깅

로 편리한 콘솔을 로깅할 수 있습을 전문적으로 디버깅할 필요가 팔을 걷어붙이고 막히 얻습니다.중단점을 설정하고,단계별 코드,검사의 범위 및 변수를 무엇을 볼 수를 일으키는 이상한 행동을 했다.은 노드 검사기 정말입니다 꿀벌 무릎.그것은 모든 것을 할 수 있는 내장 디버거나 사용하는 익숙한 Chrome 개발자 인터페이스입니다.나처럼,당신은 사용 Webstorm, 다음 편리한 가이드를 디버깅습니다.

스택 추적

기본적으로,우리는 미량의 일련의 작업에 걸쳐 다른 사이클 이벤트의 루프(ticks).하 보 longjohn (하지만에서 생산!).

메모리 누수

가 Node.js 우리는 할 수 있습 서버 프로세스에 머물 것으로 예상된다업에 대한 상당한 시간이 소요됩니다.당신은 무엇을 생각하는 경우 그것은 튀는 일부를 불쾌한 누출?사 heapdump Chrome 개발자 도구를 비교하는 몇 가지 스냅샷고 변화하고 있다.


에 대한 몇 가지 유용한 문,체크 아웃

당신이 느끼는 경우 다음과 같은 비디오를 시청(s)다음

어떤 경로를 당신이 선택,그냥을 이해해야 합니다 어떻게 디버깅할

enter image description here

그것은 고통스러운 일
보고에서 자신의 곤경과 알
당신이 자신과 다른 사람이 만든다

소포클레스,아약스

Visual Studio 용 Node.js 도구 2012 년 또는 2013 년에는 디버거가 포함되어 있습니다. 개요 여기 상태 "Visual Studio 용 Node.js 도구에는 디버깅 노드 앱에 대한 완벽한 지원이 포함되어 있습니다." Node.js를 처음 접했지만 .NET에 배경이있는이 추가가 Node.js 응용 프로그램을 디버그하는 좋은 방법이라는 것을 알았습니다.

비주얼 스튜디오 코드 정말 좋은 node.js 디버깅 지원이 있습니다. 무료, 오픈 소스 및 크로스 플랫폼이며 Linux, OS X 및 Windows에서 실행됩니다.

디버그 할 수도 있습니다 Grunt 및 Gulp 작업, 당신이 필요하다면 ...

Debug Node.js 코드에 대한 다른 접근 방식을 작성했습니다.이 코드는 안정적이고 매우 간단합니다. 이용 가능합니다 https://github.com/sa/iron-1.

Enter image description here

OpenSource 크로스 플랫폼 비주얼 디버거.

설치:

npm install iron-node -g;

디버그 :

iron-node yourscript.js;

당신이 사용하는 경우 원자 IDE, 당신은 그것을 설치할 수 있습니다 node-debugger 패키지.

크롬 버전 사용 67.0.3396.62 (+)

  1. 노드 앱을 실행합니다

노드 --inspect-brk = 0.0.0.0 : 9229 server.js (Server js filename)

  1. Chrome에서 앱을 찾아보기 예를 들어 "Localhost : Port"
  2. DevTools를 열었습니다.
  3. 반응 형 장치 아이콘 옆에 노드 아이콘을 클릭하십시오.

enter image description here

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

enter image description here

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

코드 어딘가에 간단한 진술을하고 스크립트를 정상적으로 실행하면 노드가 현재 스레드를 중단하여 모든 변수와 함수에 액세스 할 수 있습니다. 보기/편집/삭제!

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

내장 명령 줄이 있습니다 디버거 클라이언트 Node.js 내에서 Cloud 9 IDE도 꽤 멋져요 (시각적) 디버거.

비주얼 스튜디오 코드 디버깅에서 우리를 위해 일할 것입니다.

나는 짧은 것을 모았다 node.js 디버깅 프라이머 사용 중 노드 인스 스펙터 어디서 시작 해야할지 확실하지 않은 사람들을 위해.

Webstorm을 사용하십시오! Node.js 응용 프로그램 디버깅에 적합합니다. 내장 디버거가 있습니다. 여기에서 문서를 확인하십시오. https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html

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

타임 스탬프, 파일 이름, 메소드 이름, 줄 번호, 경로 또는 통화 스택으로 로그 메시지를 출력하고 색상 콘솔 지원 및 지원 데이터베이스, 파일, 스트림 전송을 쉽게 지원합니다. 나는 저자입니다.

컴퓨터에 Node-Inspector가 설치되었다고 가정하면

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

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

노드 프로세스를 시작하십시오 -inspect 깃발.

node --inspect index.js

그런 다음 열립니다 chrome://inspect 크롬에서. "노드 용 전용 DevTools 열기"링크 또는 설치를 클릭하십시오. 이것 크롬 데트 툴을 쉽게 열기위한 크롬 확장.

자세한 내용은 참조하십시오 이것 링크

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

디버그 지원은 종종 The를 사용하여 구현됩니다 V8 디버깅 프로토콜 또는 새로운 크롬 디버깅 프로토콜.

새로운 오픈 소스가 있습니다 nodeclipse 프로젝트 (일식 플러그인 또는 스튜디오를 enide):

Nodeclipse는 1 위가되었습니다 Eclipse 2013 년에 10 위의 새로운 플러그인. 수정 된 것을 사용합니다 v8 디버거 (Google Chrome Developer Tools for Java).

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

지적 node.js를 위해 훌륭하게 작동합니다.

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

그만큼 Netbeans IDE는 그 이후로 Node.js 지원을 받았습니다 버전 8.1:

<...>

새로운 기능 하이라이트

node.js 응용 프로그램 개발

  • 새로운 node.js 프로젝트 마법사
  • 새로운 node.js Express 마법사
  • 향상된 JavaScript 편집기
  • Node.js 응용 프로그램 실행에 대한 새로운 지원
  • Debugging Node.js 응용 프로그램에 대한 새로운 지원.

<...>

추가 참조 :

  1. NetBeans Wiki / Newandnoteworthynb81.
  2. Node.js Express app in NetBeans IDE, Geertjan-Oracle.

이 명령을 사용하십시오

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

좋아하는 작은 노드 스크립트를 디버깅하는 빠른 방법 브라우저 디버거 사용하는 것입니다 Browserify. 이 접근법은 기본 I/O 라이브러리가 필요한 응용 프로그램과 함께 작동하지 않지만 대부분의 작은 스크립트에 충분합니다.

$ npm install -g browserify

이제 모든 것을 움직입니다 var x = requires('x') 호출 a requires.js 파일 및 실행 :

$ browserify requires.js -s window -o bundle.js

(여기서 단점은 당신이 움직이거나 댓글을 달아야한다는 것입니다. requires 모든 파일에서.)

포함 bundle.js SO와 같은 HTML 파일에서 :

<script type="text/javascript" src="bundle.js"></script>

이제 브라우저에 파일을로드하고 누릅니다 F12 및 비올라 : 브라우저의 디버그.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top