Home  >  Article  >  Web Front-end  >  How to debug in node.js?

How to debug in node.js?

青灯夜游
青灯夜游forward
2020-11-18 17:53:072399browse

How to debug in node.js?

Related recommendations: "nodejs Tutorial"

After using node.js for a few days, I feel very novel, but the debugging problem is really frustrating. , at the beginning, I lazily learned the debugging method and just looked at the exception content. However, as the complexity of the code increased, not all errors were syntax errors. It was impossible to solve the problem without debugging, so I had to search for information and learn. How to debug it.

Supervisor that does not need to restart the service every time

Students who have used PHP must know that after modifying a script file, the new content will be loaded as long as the page server is refreshed, but node .js will put it into the memory after parsing it for the first time when it references a file. The next time it is accessed, it will be retrieved directly from the memory to improve efficiency. However, this caused some trouble for our development. After modifying a certain module It can only take effect after restarting the server, and the debugging efficiency is still very low.

So there is a supervisor plug-in in node.js to help us make file changes and automatically restart the server. Supervisor is a package of node.js. It is very simple to install. Just use the npm installation command, because we It needs to be run in the console, so it needs to be installed in the global environment

npm install -g supervisor

So we can use the supervisor to start the script

supervisor index

When we do something to the file When making changes, you can see that there are three more lines in the console and the server has been restarted

Native console debugging

node.js itself supports debugging , you can add a breakpoint by adding the debugger command in front of the statement

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

Add the debug option when starting the service

node debug index.js

Enter some commands at this time You can single-step debug, monitor local variables at breakpoints, etc. Look at the command diagram. Many commands have their abbreviations

##cont, c##next, nSingle-step executionstep, sSingle step execution and enter the functionout, oStep out of the function##setBreakpoint(), sb()setBreakpoint('f()'), sb(...)setBreakpoint('script.js', 20), sb(...)##clearBreakpoint, cb(...)##unwatch(expr)Remove the expression expr from the watch list watchersDisplay all expressions and values ​​in the watchlistreplOpen the immediate evaluation environment in the current contextkill## Terminate the currently executing scriptDisplay all currently loaded scriptsDisplay v8 version
node.js debugging commands
Command Function
run

Execute the script, pause on the first line

restart

Re-execute the script

Continue Execute until the next breakpoint is encountered



Set a breakpoint on the current line


Set a breakpoint on the first line of function f Click


in script.js Set breakpoint on line 20

##Clear all breakpoints


backtrace, bt
Display the current call stack


list(5)
Display the 5 lines of code currently executed before and after


watch(expr)
Add the expression expr to the watch list






scripts


version


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

使用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:个人觉得还是最后一种最方便

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

The above is the detailed content of How to debug in node.js?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete