如何调试Node.js服务器应用程序?

现在,我主要使用如下打印语句的警报调试:

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

必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?


当前回答

使用Chrome版本67.0.3396.62(+)

运行节点应用程序

node--inspect brk=0.0.0.0:9229 server.js(服务器js文件名)

在chrome中浏览应用程序,例如“localhost:port”打开DevTools。单击响应设备图标旁边的节点图标。

将出现另一个DevTools窗口,专门用于调试节点应用程序。

其他回答

调试

Joyent指南调试器节点检查器Visual Studio代码云9括号

分析

节点--教授/应用程序.jsnode—prof进程/生成的日志文件

堆转储

使用Chrome开发者工具的节点堆转储

火焰图

0倍jam3/devtool然后是Chrome开发者工具火焰图Dtrace和StackVis-仅在SmartOS上受支持临床医师

跟踪

使用TraceGL的交互式堆栈跟踪

登录中

输出调试信息的库

毛虫示踪剂潦草

增强堆栈跟踪信息的库

朗约翰

标杆管理

Apache工作台:ab-n 100000-c 1http://127.0.0.1:9778/wrk公司

另外

查出优势家伙Google跟踪框架保罗·爱尔兰指南

遗产

这些功能可以使用,但不再维护或不再适用于现代节点版本。

https://github.com/bnoordhuis/node-profiler-替换为内置调试https://github.com/c4milo/node-webkit-agent-由节点检查器替换https://nodetime.com/-失效

Node.js中有内置的命令行调试器客户端。Cloud9IDE也有非常好的(可视化)调试器。

Visual Studio 2012或2013的Node.js工具包含调试器。这里的概述指出“Node.js Tools for Visual Studio包括对调试节点应用程序的完全支持”。作为Node.js的新手,但我有.NET背景,我发现这个插件是调试Node.js应用程序的一个好方法。

用您最喜欢的浏览器调试器调试小型Node.js脚本的一种快速而肮脏的方法是使用browserify。注意,这种方法不适用于任何需要本机I/O库的应用程序,但对于大多数小型脚本来说,它已经足够好了。

$ npm install -g browserify

现在将所有var x=requires('x')调用移动到requires.js文件中并运行:

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

(这里的缺点是,您必须移动或注释所有文件中的要求。)

在HTML文件中包含bundle.js,如下所示:

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

现在在浏览器中加载文件,然后在浏览器中按F12和viola:debug。

NetBeans IDE从8.1版开始就支持Node.js:

<...>新功能亮点Node.js应用程序开发新建Node.js项目向导新建Node.js Express向导增强的JavaScript编辑器对运行Node.js应用程序的新支持对调试Node.js应用程序的新支持。<...>

其他参考:

NetBeans Wiki/NewAndNoteworthyNB81。NetBeans IDE中的Node.js Express应用程序,Geertjan Oracle。