2012-04-30 2 views
9

Node와 Express에 대한 경험이별로 없지만 터미널 창에서 응용 프로그램을 디버깅하는 데 문제가 있습니다.노드/익스프레스 디버깅 --- ('express')가 break를 생성합니다.

< debugger listening on port 5858 
connecting... ok 
break in server.js:1 
    1 var express = require('express'); 

이 특급 응용 프로그램을 디버깅의 올바른 방법인가 :

node debug app.js 반환을 실행 : 여기에 문제가?

답변

9

인기있는 GUI 디버거 (WebKit, 즉 Chrome, Safari ..)를 사용합니다.

당신은 무슨 일인지 알아 내기 위해 구식 console.log 문에 node-inspector의 조합을 사용하는 것을 선호, 그것은 개인적 https://github.com/dannycoates/node-inspector

+1

node-inspector는가는 길과 같습니다. 감사합니다. 그래도 나에게 아직 명확하지 않은 것은 서버 변수에 액세스하는 방법입니다. 예를 들어,이 예에서는 express가 undefined를 반환합니다. –

+0

내장 된 디버거를 사용하여 변수를 검사한다고 가정합니까? 여기 http://nodejs.org/api/debugger.html 예제를 보시고보십시오. 기본적으로 REPL 모드로 들어가서 검사 해보십시오. – 250R

+2

링크를 남기지 않고 시작하는 방법을 올바른 명령에 추가하십시오. ... 그리고 내 upvote를 적립 ... ^^ – jebbie

2

이동 주어야한다. (노드 검사기에서 언급 한 v8 프로파일 러가 노드 0.6.x에서 작동한다고 생각하지 않지만 솔직히 시도하지는 않았습니다.)

다른 사람이 디버깅을 위해 더 잘 유지 보수 된 도구를 사용하고있는 경우 .js 애플 리케이션, 나는 그것도 듣고 싶지만 너무 잘 알고 이것은 내가 아는 최고입니다.

+0

http://stackoverflow.com/questions/14214021/how-to-install-v8-profiler-using-npm-on-windows-7 –

10

노드 인스펙터에 대한 호출을 더 자세한 설명과 함께 표시합니다. 지금의

$ sudo npm install -g node-inspector 
$ node-debug app.js <arguments to your app> 
debugger listening on port 5858 
Node Inspector is now available from http://localhost:8080/debug?port=5858 
Debugging `app.js` 

는 (? 웹킷 기반) 브라우저가 해당 주소로 이동 - 아니면 한 포트가 열려으로 원격 너무 잘 작동합니다.

enter image description here

이제 클라이언트 측 디버거에 노출 된 모든 서버 측 변수 (인스턴스에 대한 app 개체)에 대한 전체 액세스 할 수 있습니다. 그것은 꽤 마술 적입니다. 중단 점은 app.get() 진입 점이나 서버 초기화 또는 어디에서나 설정할 수 있습니다.

+0

나는 이것을 얻을 수 없다. 작업. 노드 관리자가 열리지 만 app.js를 찾을 수 없습니다. –

+2

이 하나가 받아 들여진 대답이어야합니다. "node-inspector app.js"를 시작하면 전혀 트릭을 수행하지 못합니다.) .. "이봐, 체크 아웃"과 연결된 링크를 그냥 떠난다는 느낌이 들지 않습니다. 내 대답처럼 .. ^^ – jebbie

관련 문제