如何在 node.js 中输出深度堆栈跟踪
How to output a deep stack trace in node.js?
发生正常异常时,将输出如下所示的堆栈跟踪:
util.js:38
case '%s': return String(args[i++]);
^
TypeError: Cannot convert object to primitive value
at String (unknown source)
at util.js:38:25
at String.replace (native)
at Object.<anonymous> (util.js:35:23)
at Object.<anonymous> (console.js:25:36)
at EventEmitter.<anonymous> (/project/src/routines/debug/boot.js:16:21)
at EventEmitter.emit (/project/node_modules/eventemitter2/lib/eventemitter2.js:319:22)
at /project/src/bootstrap.js:15:14
at /project/src/util/routineloader.js:36:11
at /project/src/util/routineloader.js:47:6
这是非常有帮助的。然后,当我在某处执行以下操作时:
process.on('uncaughtException', function(err) {
console.trace();
throw err;
});
我只得到:
Trace:
at EventEmitter.<anonymous> (/project/src/routines/debug/exceptions.js:4:17)
at EventEmitter.emit (events.js:88:20)
这根本没有帮助。
如何让它像原始堆栈一样返回整个堆栈跟踪?
你快到了:
process.on('uncaughtException', function(err) {
console.log(err.stack);
throw err;
});
function foo() {
throw new Error("HI. I'm an error.");
}
foo();
/* Prints
Error: HI. I'm an error.
at foo (/Users/rye/Desktop/test.js:7:9)
at Object.<anonymous> (/Users/rye/Desktop/test.js:10:1)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)
*/
node --stack_trace_limit=200 your-script.js
我发现当我使用console.log(err)时,我得到了正确的结果,所以我查看了api并发现了以下内容:
var mystring=require('util').inspect(error_object);
您将获得字符串形式的堆栈跟踪
相关文章:
- 在JavaScript中输出转义字符
- 如何在jQuery中将函数的输出分配给变量
- 在不知道深度或父属性的情况下从对象中删除属性
- Javascript,输出结果后页面不断刷新
- Datetime格式为Friendly Time.Moment JS输出错误
- 如何将angularjs中的javascript字符串输出为循环数组
- 递归深度比较
- HTML5FileReader输出到D3.js图表
- console.log以外的Javascript输出函数
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- PHP中的数组输出
- 以不同的顺序输出数据
- 使用Rivets.js输出类
- 在Chrome扩展内部输出Google API调用
- 如何为d3.js图表输出组织/嵌套数据
- 将IndexedDB中的数据拉入数组,并通过ReactJS输出
- 一个ajax循环有两个输出错误innerHTML
- 快速排序程序未正确输出
- 如何对映射插件创建的敲除对象进行深度复制
- 如何在 node.js 中输出深度堆栈跟踪