我有一个 node.js 应用程序,它连接到 RabbitMQ 以接收消息。当消息进来并输出到控制台时,我得到以下内容: { data: <Buffer 62 6c 61 68>, contentType: undefined }
我该如何从中获取一个正确的 JSON 或字符串?这是我的示例:
var amqp = require('amqp');
var connection = amqp.createConnection({ host: 'localhost' });
process.on('uncaughtException', function(err) {
console.error(err.stack);
});
connection.on('ready', function () {
// Use the default 'amq.topic' exchange
connection.queue('my-queue', function(q){
q.bind('#');
q.subscribe(function (message) {
console.log(message);
});
});
});
目前为了测试目的,消息是通过RabbitMQ管理控制台发送的。在这个例子中,我发送了一个主题为“test”,内容为“blah”的简单消息。
虽然我对Node.js不太熟悉,但我已经尝试过
console.log(message.toJSON());
我什么也没得到,甚至没有错误信息。(不确定如何捕获问题)
console.log(message.toString());
我执行此操作时,会得到 [object Object] 的结果,但这并没有帮助
console.log(JSON.parse(message.toString('utf8')));
同样没有效果,且我没有收到任何错误信息。我猜测它失败了,但为什么我没有收到异常消息是我不知道的。
Buffer.from()
代替new Buffer()
,因为后者已经被弃用。 - Idan Dagan