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

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

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

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


当前回答

我为那些不知道从哪里开始使用节点检查器的人编写了一个简短的Node.js调试入门。

其他回答

如果您需要Node.js的强大日志库,Tracerhttps://github.com/baryon/tracer是更好的选择。

它输出带有时间戳、文件名、方法名、行号、路径或调用堆栈的日志消息,支持颜色控制台,并轻松支持数据库、文件和流传输。我是作者。

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

我个人使用JetBrains WebStorm,因为它是我发现的唯一一个适用于前端和后端JavaScript的JavaScript IDE。

它可以在多个操作系统上运行,内置Node.js调试(以及大量其他功能)(http://www.jetbrains.com/webstorm/features/index.html).

我唯一的“问题”/愿望列表项目是:

在Mac上,它似乎比Windows更需要资源。在版本6中,它似乎不再是一个问题。如果它有Snippet支持(就像Sublime Text 2一样),那就太好了。比如,键入“fun”并点击“tab”以放入一个函数。请参阅下面的@WickyNilliams评论-使用Live模板,您也可以支持Snippet。

假设您的计算机上安装了节点检查器(如果没有,只需键入“npm install-g node inspector”),您只需运行:

node-inspector & node --debug-brk scriptFileName.js

然后从命令行将URI粘贴到WebKit(Chrome/Safari)浏览器中。

请尝试有趣的方法来调试Node.js应用程序(不仅仅是)使用智能日志

https://github.com/darky/the-most-convenient-debug