如何从RabbitMQ订阅处理程序中的错误代码中获取堆栈跟踪



如果在处理来自RabbitMQ的传入消息的node.js函数内部引发错误,则堆栈跟踪来自节点amqp代码,而不是我的处理程序中的代码(错误通常为"无法调用未定义的方法indexOf",无论实际错误是什么)。

是否有任何方法可以获得正在执行的代码的堆栈,而不是停在节点amqp模块的"边缘"的堆栈?

堆栈跟踪示例:

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)

在您的堆栈跟踪引用的行的lib中,似乎缺少队列的名称,如果您给队列一个名称,也许您可以获得更好的堆栈跟踪?

https://github.com/postwait/node-amqp/blob/master/lib/queue.js#L398

相关内容

最新更新