2014-01-22 3 views
1

파일 (의이 script.js를 호출하자)을 갖는으로 표시됩니다 "Hello World!"을 출력합니다.더 선은 다음과 같은 내용으로 NodeJS 디버거

node debug script.js을 실행하면 문제가 발생합니다. 다음 출력을 얻었습니다 :

$ node debug script.js 
< debugger listening on port 5858 
connecting... ok 
break in script.js:1 
    1 console.log("Hello World!"); 
    2 
    3 }); 
debug> 

왜 마지막 두 줄이 나타 났습니까?

나를 버그처럼 보이지만 어쩌면 다른 설명이 있을까요?

+1

(를 즉, 모듈 패턴)와 그 설명 할 수 마지막 "});" 그러나 나는 당신이 "function (exports) {"을 가진 새로운 첫 번째 줄을 보지 못한다는 것에 놀랐다. –

+0

@HectorCorrea 중단 점에 도달 한 행 다음에 몇 줄 밖에 표시하지 않습니다. – Chev

+0

https://github.com/nodejs/node/issues/9768 – codemagician

답변

3

프로세스가 끝나기 전에 디버깅하는 코드의 일부만 보여줍니다. 노드에 작성한 코드는 해당 범위에서 필요한 모든 변수를 제공하는 함수에 포함됩니다. 이것은 모든 모듈이 자체 "글로벌"범위를 가지기 때문에 전체 전역 변수 문제를 해결하는 방법입니다.

이 좋은 예는 node-inspector으로 디버깅하는 동안 볼 수 있습니다. 디버깅하는 동안 프로젝트의 자산을 클릭 할 수 있습니다.

console.log("Hello, world!");이라는 script.js 파일을 유일한 행으로 생성했습니다.


node-inspector를 설치하려면 : 그것은 내부 노드 관리자 모양을 확인

  • 터미널을 열고, 유형 "노드 관리자"

    1. npm install -g node-inspector, 앱이 실행되기 시작합니다.

    2. http://localhost:8080/debug?port=58581으로 이동하십시오. 이 같은 결과 화면을 볼 수있을 것입니다 :

    3. 이제 다른 터미널 창에서 응용 프로그램 node --debug-brk script.js을 실행합니다. --debug-brk은 디버거가 연결될 때까지 노드가 응용 프로그램의 첫 번째 줄에서 중단되도록합니다.

    4. 노드 - 관리자 페이지를 새로 고침 한 다음 디버깅을 시작할 수 있습니다 : D 내가 노드가 자동으로 함수에 코드를 래핑 이해

  • +0

    어디서 볼 수 있습니까? –

    +0

    이것은 [노드 관리자] (https://github.com/node-inspector/node-inspector)입니다.그것을 설치하고 사용하는 방법에 대한 내 편집을 참조하십시오 :) – Chev

    +1

    GIF 화면 레코드! ;-) 니스. 고맙습니다! –

    관련 문제