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

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

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

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


当前回答

使用--inspect标志启动节点进程。

node--检查index.js

然后打开chrome://inspect镀铬。单击“Open dedicated DevTools for Node”链接或安装此chrome扩展以轻松打开chrome DevTools。

有关详细信息,请参阅此链接

其他回答

作为Google Chrome开发者工具的一部分发布的V8调试器可用于调试Node.js脚本。可以在Node.js GitHub wiki中找到这一工作原理的详细说明。

此方法对JS也是有效的。这是您要检查的放置调试器单词。运行JS或Nodejs应用程序时,在浏览器中打开inspect元素。如果到达该行,执行将暂停,如下图所示。

节点检查器可以节省一天!从任何支持WebSocket的浏览器使用它。断点、分析器、实时编码等……真是太棒了。

安装时使用:

npm install -g node-inspector

然后运行:

node-debug app.js

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

node --inspect <name of your file>

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

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

用您最喜欢的浏览器调试器调试小型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。