如何从我自己的代码中获取有关 RabbitMQ 订阅处理程序错误的堆栈跟踪信息?
How can I get a stack trace from my own code on errors in RabbitMQ subscription handler?
如果在处理来自 RabbitMQ 的传入消息的 node.js 函数内抛出错误,则堆栈跟踪来自 node-amqp 代码而不是我的处理程序中的代码(错误通常是 "cannot call method indexOf of undefined",不管实际错误是什么)。
有什么方法可以获取我正在执行的代码的堆栈跟踪,而不是在 node-amqp 模块的 "the edge" 处停止的代码?
堆栈跟踪示例:
stackTrace=TypeError: Cannot call method 'indexOf' of undefined
at Queue._onMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/queue.js:398:23)
at Queue.Channel._onChannelMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/channel.js:85:12)
at Connection._onMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/connection.js:443:28)
at AMQPParser.self.parser.onMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/connection.js:136:12)
在你的堆栈跟踪引用的库中,似乎缺少队列名称,如果你给你的队列一个名称 - 也许你会得到更好的堆栈跟踪?
https://github.com/postwait/node-amqp/blob/master/lib/queue.js#L398
如果在处理来自 RabbitMQ 的传入消息的 node.js 函数内抛出错误,则堆栈跟踪来自 node-amqp 代码而不是我的处理程序中的代码(错误通常是 "cannot call method indexOf of undefined",不管实际错误是什么)。
有什么方法可以获取我正在执行的代码的堆栈跟踪,而不是在 node-amqp 模块的 "the edge" 处停止的代码?
堆栈跟踪示例:
stackTrace=TypeError: Cannot call method 'indexOf' of undefined
at Queue._onMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/queue.js:398:23)
at Queue.Channel._onChannelMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/channel.js:85:12)
at Connection._onMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/connection.js:443:28)
at AMQPParser.self.parser.onMethod (/myproject/node_modules/besedoq/node_modules/amqp/lib/connection.js:136:12)
在你的堆栈跟踪引用的库中,似乎缺少队列名称,如果你给你的队列一个名称 - 也许你会得到更好的堆栈跟踪?
https://github.com/postwait/node-amqp/blob/master/lib/queue.js#L398