>  기사  >  웹 프론트엔드  >  node.js에서 디버깅하는 방법은 무엇입니까?

node.js에서 디버깅하는 방법은 무엇입니까?

青灯夜游
青灯夜游앞으로
2020-11-18 17:53:072428검색

node.js에서 디버깅하는 방법은 무엇입니까?

관련 추천: "nodejs Tutorial"

node.js를 며칠 써보니 참 신기한 느낌인데, 디버깅 문제가 정말 귀찮아서 처음에는 디버깅 방법을 배우기가 귀찮았습니다. 그리고 예외 내용만 보면 되는데, 코드가 복잡해질수록 모든 오류가 문법 오류인 것은 아니기 때문에 디버깅 없이는 해결할 수 없는 문제였습니다.

매번 서비스 감독자를 다시 시작할 필요가 없습니다.

PHP를 사용해 본 학생들은 스크립트 파일을 수정한 후 페이지 서버를 새로 고치면 새 콘텐츠가 로드되지만, 해당 작업에는 node.js가 참조된다는 점을 알아야 합니다. 처음에는 특정 파일을 파싱한 후 메모리에 저장하고 다음 번에 액세스할 때 효율성을 높이기 위해 메모리에서 직접 가져옵니다. 그러나 이로 인해 수정 후 약간의 문제가 발생합니다. 특정 모듈에서는 서버를 다시 시작한 후에만 적용할 수 있습니다. 디버깅 효율성은 여전히 ​​매우 낮습니다.

그래서 node.js에는 파일 변경 사항을 통합하고 서버를 자동으로 다시 시작하는 데 도움이 되는 감독자 플러그인이 있습니다. Supervisor는 node.js의 패키지이므로 설치가 매우 간단합니다. 콘솔에서 해야 합니다. 실행하려면 글로벌 환경에 설치해야 합니다

npm install -g supervisor

그러면 Supervisor를 사용하여 스크립트를 시작할 수 있습니다

supervisor index

파일을 변경하면 다음을 볼 수 있습니다. 콘솔에 세 줄이 더 있고 서버가 다시 시작되었습니다

기본 콘솔 디버깅

node.js 자체가 디버깅을 지원합니다. 명령문 앞에 디버거 명령을 추가하여 중단점을 추가할 수 있습니다

var server=require('./server'),
    router=require('./router'),
    requestHandlers=require('./requestHandlers');debugger;var handle={};debugger;
handle['/']=handle['/start']=requestHandlers.start;debugger;
handle['/upload']=requestHandlers.upload;
handle['/show']=requestHandlers.show;debugger;
server.start(8080,router.route,handle);

. 서비스 시작 시 디버그 옵션 추가

node debug index.js

이때 몇 가지 지침을 입력하면 단일 단계 디버그, 중단점에서 로컬 변수 모니터링 등이 가능합니다. 명령 다이어그램을 보면 많은 명령에 약어가 있습니다

. 스크립트 실행, 첫 번째 줄에서 일시 중지restartcont, cnext, nstep, sout, o함수에서 나가기 setBreakpoint(), sb()현재 줄에 중단점 설정setBreakpoint('f()'), sb(...)script.jsClear all breakpoints현재 호출 스택 표시코드 5줄 표시 현재 실행감시 목록에 표현식 expr 추가감시 목록에서 표현식 expr 제거 쇼 목록의 모든 표현식과 값 보기현재 컨텍스트에서 즉시 평가 환경 열기현재 실행 중인 스크립트 종료현재 로드된 모든 스크립트 표시v8 버전 표시

详细使用有兴趣同学可以自己摸索,我是没兴趣。。。太复杂了,看几个贴心的

使用Eclipse调试

是的,Eclipse又威武了,连node.js也能调试,在Eclipe官网上下载eclipse,然后 Help->Install New Software->Add

在弹出的窗口添加一个源,名字好记就行,地址是http://chromedevtools.googlecode.com/svn/update/dev/

等一会儿后弹出选择界面,选中第一个

 一路next到最后finish,下载完成后会提醒重启Eclipse,完成之后就可以调试node.js了,打开想调试的文件,切换Eclipse到调试视图,点击工具栏右边的小三角,选择Debug Configuration

双击 Standard V8 VM 选项创建一个新的配置,填好相应参数

通过 --debug-brk选项在控制台启动node服务器

node --debug-brk=5858 test.js

点击Eclipse刚才界面的debug按钮,就可以像调试Java一样调试node.js了

使用node-inspector调试

大部分node.js应用都是web应用,所以一些基于Chrome的在线调试工具应运而生,最出名的应该就是node-inspector了,这是一个node.js的模块,安装、使用相当的方便,首先使用npm把其安装在全局环境中

npm install -g node-inspector

node-inspector是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector来监听node.js的debug调试端口。默认情况下node-inspector的端口是8080,可以通过参数--web-port=[port]来设置端口。

在启动node-inpspector之后,我们可以通过--debug或--debug-brk来启动node.js程序。

这时候就可以访问http://127.0.0.1:8888/debug?port=5858 使用浏览器调试了,看看界面,不用多说什么了吧

最后

参考:node.js开发指南

PS:个人觉得还是最后一种最方便

更多编程相关知识,请访问:编程学习网站!!

node.
스크립트 다시 실행


다음 중단까지 계속 실행 포인트가 발생합니다


Step into


Step into a function


첫 번째 줄에 중단점 설정 함수 f

setBreakpoint('script.js', 20), sb(...)


clearBreakpoint, cb(.. .)


backtrace, bt


list(5)


watch(expr)


unwatch(expr)


watchers


repl


kill


스크립트 초


version


위 내용은 node.js에서 디버깅하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제