10

我正在使用 node.js amqp 模块从队列中读取消息。以下是队列中有可用消息时调用的回调:

function onMessage(message, headers, deliveryInfo)
{
    console.log(message); //This prints buffer
    //how to convert message (which I expect to be JSON) into a JSON object.
    //Also how to get the JSON string from the 'message' which seems to be a buffer
}

谢谢。

4

2 回答 2

13

如果您收到包含 JSON 的 Buffer,则需要将其转换为字符串以向控制台输出有意义的内容:

console.log(message.toString())

如果您想将该字符串转换为完整的 JavaScript 对象,则只需解析 JSON:

var res = JSON.parse(message.toString())

编辑: node-amqp 似乎能够直接发送 JavaScript 对象(见这里),你不应该接收缓冲区,而是 JavaScript 对象......检查你如何发送你的消息。

于 2013-12-17T08:18:32.183 回答
12

message.data.toString() 返回了相应的 JSON 字符串。

于 2013-12-17T10:22:48.190 回答