Как преобразовать буфер сообщений 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 ответа
Решение
Если вы получите буфер, содержащий JSON, вам нужно преобразовать его в строку, чтобы вывести на консоль что-то значимое:
console.log(message.toString())
Если вы хотите преобразовать эту строку в полноценный объект JavaScript, просто проанализируйте JSON:
var res = JSON.parse(message.toString())
Редактировать: кажется, что node-amqp может отправлять напрямую объекты JavaScript (см. Здесь), вы должны получать не буферы, а объекты JavaScript... Проверьте, как вы отправляете свои сообщения.