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

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

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

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


当前回答

仅为完整起见:

PyCharm 3.0+Node.js插件提供了很棒的开发+运行+调试体验。

其他回答

使用Chrome版本67.0.3396.62(+)

运行节点应用程序

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

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

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

使用IDE

在WebStorm中,您只需打开package.json文件,然后从那里以DEBUG模式运行脚本。只需单击侧面的绿色播放按钮。

带有--检查

如果要在没有IDE的情况下直接从CLI调试应用程序,那么可以运行类似node index.js--inspect的脚本。默认情况下,它将侦听端口5858,允许您连接调试器。或者,您可以使用--inspect=55858指定不同的端口。

带有环境变量

创建一个脚本myInspector.js,如下所示:

let inspector = require("inspector");

// you could explicitly specify a port.
// or alternatively set it to 0 to get any available port.
const port = 0;
inspector.open(port, undefined, true);

// print the url which also reveals the port.
const url = inspector.url()
console.log(url);

设置环境变量NODE_OPTIONS=“--requiremyInspector.js”启动脚本。

事实上,这也是WebStorm注入检查器的方式。美妙之处在于,无论您使用哪种发射器,它都能正常工作。所以你可以跑。。。,节点ts。。。或者甚至使用一些.sh/.bat文件。

Node.js 0.3.4+版本具有内置调试支持。

节点调试脚本.js

手册:http://nodejs.org/api/debugger.html

自6.3版起,Node拥有自己的内置GUI调试器(使用Chrome的DevTools)

只需传递检查器标志,就会向您提供一个指向检查器的URL:

node --inspect server.js

您也可以在第一行通过--inspect brk。

从“文件”->“首选项”->“设置”->“搜索自动附加”并将其设置为“打开”,打开控制台(ctrl+*)或从菜单“终端”->“新建终端”,在代码中设置断点,键入命令

node --inspect <name of your file>

这将启动调试,VS代码将显示调试菜单。

注意:如果使用节点集群工作线程,自动附加也非常有用。