Javascript 节点红色I can';t提取消息体

Javascript 节点红色I can';t提取消息体,javascript,node-red,Javascript,Node Red,我开始使用Node Red开发MQTT仪表板, 我只是从一个简单的例子开始,订阅一个主题并调试消息。 但是,我无法获取消息的json值并将其从base64转换为字符串 我的信息看起来像是: “{”metrics:{},“body:“eyjjb250zw50lxnwzwmioij1cm46c3blyzpcl1wvzwnsaxbzzs5vcmdcl3vuwrx9tzwfzdxjlbwwwvudc1tznzywdli3yiiiiiiiiiizgv2imrldmljzuleijjjjjjjjjjjjj

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

我的信息看起来像是:


“{”metrics:{},“body:“eyjjb250zw50lxnwzwmioij1cm46c3blyzpcl1wvzwnsaxbzzs5vcmdcl3vuwrx9tzwfzdxjlbwwwvudc1tznzywdli3yiiiiiiiiiizgv2imrldmljzuleijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
功能节点必须返回消息对象,而不是普通值。这就是为什么会收到错误消息,告诉您函数正在发送字符串

如果希望它发送的消息的有效负载为该字符串值,您可以执行以下操作:

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

对于这种类型的事情,最好使用Change节点将
msg.payload.body
移动到
msg.payload

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

如果希望它发送的消息的有效负载为该字符串值,您可以执行以下操作:

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

对于这种类型的事情,最好使用更改节点将
msg.payload.body
移动到
msg.payload

您好,请更新问题以显示您正在尝试执行的操作。问题的标题似乎与问题的主体无关-这是关于连接到代理还是关于获取消息对象的值?亲爱的Knolleray,这是我的错误抱歉,我更新了标题我真正的问题是获取消息对象的值。请分享您尝试过的细节。你说“我试过这个函数”。。。但是你没有提供代码。谢谢你的回答,我更新了代码,函数很简单:return msg.payload.body;您好,请更新问题以显示您正在尝试做什么。问题的标题似乎与问题的主体无关-这是关于连接到代理还是关于获取消息对象的值?亲爱的Knolleray,这是我的错误抱歉,我更新了标题我真正的问题是获取消息对象的值。请分享您尝试过的细节。你说“我试过这个函数”。。。但是你没有提供代码。谢谢你的回答,我更新了代码,函数很简单:return msg.payload.body;非常感谢,我已经用这两种方法提取了我的消息体,但是当我提取消息并从64base转换时,我将有一个字符串输出,如何将字符串转换为JSON?非常感谢您的帮助如果您有JSON的字符串表示,只需通过JSON节点传递消息,该节点将返回JSON对象非常感谢,我用这两种方法提取了消息正文,但是当我提取消息并从64base转换时,我将有一个字符串输出,如何将字符串转换为JSON?非常感谢您的帮助如果您有JSON的字符串表示,只需通过JSON节点传递消息,该节点将返回一个JSON对象