当api(用nodejs编写)出现错误时如何显示堆栈跟踪信息?顺便说一句,我使用curl 发布了一个帖子。
我尝试了 Node 的 cli 参数 --stack-trace-limit,但除了不友好的单行错误消息之外没有显示任何内容。我可以在代码中使用 console.* 和调试器行,但这太耗时了。我尝试过 Node 检查器。虽然它有一个不错的 GUI,但它很容易崩溃。我认为必须有一种更简单的方法?
谢谢。 J
最佳答案
如果没有看到一些代码,很难具体回答。不过,您也可以使用
获取堆栈跟踪var stack = new Error().stack
有用的模块
- Memwatch对于在代码中的各个位置输出堆差异非常有用
- node heapdump允许您向正在运行的 Node 进程发送
kill -SIGUSR2 [pid]
以生成堆转储,然后可以通过打开配置文件选项卡并右键单击左侧 Pane 在 Chrome 开发人员工具中查看该堆转储并选择加载配置文件 - Standard v8 debugger使用
node debug module_name.js
运行您的进程,然后代码中任何有debugger;
语句的地方都会导致调试器在那里中断 - node-webkit-agent堆和 CPU 分析工具,使用 Chrome 开发人员工具界面来分析您的 Node.js 应用程序。目前不支持调试,但显然正在开发中
- Long Stacktraces有时您可能会收到没有任何堆栈与之关联的错误。我有时会遇到 http 请求的问题。 Longjohn 解决了这个问题
- node-ofe当您的应用严重崩溃时自动生成堆转储
代码结构
编写异步 Node.js 代码的方式对调试的便捷性有很大影响。命名函数是好的,匿名的高度嵌套的函数是坏的。查看http://callbackhell.com/有关如何编写干净的可调试 Node.js 代码的良好指南
关于node.js - 堆栈跟踪 Nodejs REST API 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15468669/