堆栈跟踪nodejs REST API错误

时间:2013-03-18 01:57:49

标签: node.js debugging stack trace

如果在api中出现错误(用nodejs编写)时如何显示堆栈跟踪信息?我使用curl发布一个帖子顺便说一句。

我尝试了node的cli参数--stack-trace-limit,但除了一条不友好的单线路错误消息之外什么都没有显示。我可以在代码中使用console。*和调试器行,但这太费时了。我试过了node-inspector。虽然它有一个很好的GUI,它崩溃了。我认为必须有一种更简单的方法吗?

THX。 Ĵ

1 个答案:

答案 0 :(得分:2)

没有看到一些代码,很难具体回答。但是,您也可以使用

获取堆栈跟踪
var stack = new Error().stack

有用的模块

  1. Memwatch用于在代码中的不同位置输出堆差异
  2. node heapdump允许您向正在运行的节点进程发送kill -SIGUSR2 [pid]以生成堆转储,然后可以通过打开配置文件选项卡并右键单击左窗格,在Chrome开发人员工具中查看堆转储并选择加载配置文件
  3. Standard v8 debugger使用node debug module_name.js运行您的流程然后您的代码中有debugger;语句的任何地方都会导致调试器中断
  4. node-webkit-agent一个堆和cpu性能分析工具,它使用Chrome开发人员工具界面来分析您的node.js应用程序。目前不支持调试,但显然正在进行中
  5. Long Stacktraces有时您可以获得没有任何与之关联的堆栈的错误。我有时会遇到http请求这个问题。 Longjohn解决了这个问题
  6. node-ofe当您的应用致命崩溃时自动生成堆转储
  7. 代码结构

    编写异步node.js代码的方式会对调试的简易性产生很大影响。命名函数很好,匿名高度嵌套的函数很糟糕。查看http://callbackhell.com/以获取有关如何编写干净的可调试node.js代码的良好指南