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

时间:2015-03-05 12:35:21

标签: node.js rabbitmq node-amqp

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

有没有办法让我的代码执行堆栈跟踪,而不是停留在"边缘" node-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)

1 个答案:

答案 0 :(得分:1)

在你的堆栈跟踪引用的行中的lib似乎缺少队列的名称,如果你给队列命名 - 也许你会得到更好的堆栈跟踪?

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