Как преобразовать буфер сообщений AQMP в объект JSON при использовании модуля node.js amqp?

Я использую модуль 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
}

Благодарю.

2 ответа

Решение

message.data.toString() вернул соответствующую строку JSON.

Если вы получите буфер, содержащий JSON, вам нужно преобразовать его в строку, чтобы вывести на консоль что-то значимое:

console.log(message.toString())

Если вы хотите преобразовать эту строку в полноценный объект JavaScript, просто проанализируйте JSON:

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

Редактировать: кажется, что node-amqp может отправлять напрямую объекты JavaScript (см. Здесь), вы должны получать не буферы, а объекты JavaScript... Проверьте, как вы отправляете свои сообщения.

Другие вопросы по тегам