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

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

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

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


当前回答

其他答案中没有提到的另一个选项是使用名为Rookout的工具。它用于从本地和远程应用程序调试和获取数据。我们在生产环境中使用它将数据聚合到其他服务中,这为我们省去了很多麻烦和硬编码日志记录

其他回答

仅为完整起见:

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

我个人使用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。

我最初的反应是几年前的预视工作室。

因此,hapi使用GOOD是一个很棒的日志记录包,但要进行调试,请使用visual studio。

最初的回应(很久以前):我会使用沃尔玛实验室的GOOD。它可以完成任务,而且非常灵活:

var hapi = require('hapi');
var good = require('good');
var server = hapi.createServer('localhost', 5000,{});
server.route({SOME ROUTE HERE});
server.start();

var options = {
subscribers: {
    'console':               ['ops', 'request', 'log', 'error'],
    'http://localhost/logs': ['log']
    }
};
server.pack.require('good', options, function (err) {

    if (!err) {
        console.log('Plugin loaded successfully');
    }
});

使用网络风暴!它非常适合调试Node.js应用程序。它有一个内置的调试器。查看此处的文档:https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html

Visual Studio代码将在调试中为我们提供帮助。