节点红色我无法提取邮件正文

时间:2018-04-25 12:40:36

标签: javascript node-red

我开始使用Node-Red开发MQTT仪表板, 我只是从一个简单的例子开始订阅主题并调试消息。 但是,我无法获取消息的json值并将其从base64转换为字符串。

我的信息看起来像个人:



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




我想提取正文消息并将其转换。

我在使用JSONconverter后尝试过这个功能:



return msg.payload.body;




但我得到了他的错误: "函数尝试发送字符串"

类型的消息

nodes

message

祝你好运

1 个答案:

答案 0 :(得分:4)

Function节点必须返回消息对象 - 而不是普通值。这就是为什么您收到错误消息,告诉您函数正在发送字符串。

如果您希望它发送的消息的有效负载是该字符串值,您可以这样做:

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

对于那种类型的事情,使用“更改”节点移动 msg.payload.bodymsg.payload可以更好地提供服务。