Узел красный Я не могу извлечь тело сообщения - PullRequest
0 голосов
/ 25 апреля 2018

Я начал использовать Node-Red для разработки панели инструментов MQTT, я только начал с простого примера подписки на тему и отладки сообщения.Однако я не смог получить значение json моего сообщения и преобразовать его из base64 в строку.

мое сообщение выглядит так:

"{"metrics":{},"body":"eyJjb250ZW50LXNwZWMiOiJ1cm46c3BlYzpcL1wvZWNsaXBzZS5vcmdcL3VuaWRlXC9tZWFzdXJlbWVudC1tZXNzYWdlI3YyIiwiZGV2aWNlIjp7ImRldmljZUlEIjoiMTMyNDUifSwibWVhc3VyZW1lbnRzIjpbeyJzZXJpZXMiOnsiJF90aW1lIjpbMF0sIlZBIjpbMjM5MzMwLjBdfSwidHMiOiIyMDE4LTA0LTI1VDA5OjM4OjU0LjIyOCswMDAwIn1dfQ=="}"

Я хочу извлечь сообщение тела и преобразовать его.

Я уже пробовал эту функцию после использования JSONconverter:

return msg.payload.body;

но я получил его ошибку: «Функция пыталась отправить сообщение типа строка»

узлов

сообщение

С уважением

1 Ответ

0 голосов
/ 25 апреля 2018

Узел функции должен возвращать объект сообщения, а не простое значение. Вот почему вы получаете сообщение об ошибке, сообщающее, что функция отправляет строку.

Если вы хотите, чтобы полезная нагрузка отправляемого сообщения была этим строковым значением, вы должны сделать:

msg.payload = msg.payload.body;
return msg;

Для такого типа вещей вам лучше будет воспользоваться узлом Изменить на переместить msg.payload.body на msg.payload.

...