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

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

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

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


当前回答

我编写了一种不同的方法来调试Node.js代码,它非常稳定且非常简单。可在https://github.com/s-a/iron-node.

一个开源的跨平台可视化调试器。

安装:

npm安装铁节点-g;

调试:

铁节点yourscript.js;

其他回答

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

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

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

有很多可能性。。。

节点包括调试实用程序节点检查器代码编辑器/IDE(请参阅以下调试说明之一)原子VSC代码网络风暴以及更多

调试支持通常使用v8调试协议或较新的Chrome调试协议实现。

您可以尝试捕获错误:

function yourFunc() {
  try {
      // YOUR CODE HERE
  } catch (err) {
      console.error(err.message + ", " + err.trace);
  }
}

错误消息和错误跟踪将为您提供识别和纠正运行时错误所需的信息。

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

因此,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');
    }
});