javascript - 节点红色我无法提取消息正文
问题描述
我开始使用 Node-Red 开发 MQTT 仪表板,我只是从一个简单的示例开始订阅主题并调试消息。但是,我无法获取消息的 json 值并将其从 base64 转换为字符串。
我的消息看起来像:
"{"metrics":{},"body":"eyJjb250ZW50LXNwZWMiOiJ1cm46c3BlYzpcL1wvZWNsaXBzZS5vcmdcL3VuaWRlXC9tZWFzdXJlbWVudC1tZXNzYWdlI3YyIiwiZGV2aWNlIjp7ImRldmljZUlEIjoiMTMyNDUifSwibWVhc3VyZW1lbnRzIjpbeyJzZXJpZXMiOnsiJF90aW1lIjpbMF0sIlZBIjpbMjM5MzMwLjBdfSwidHMiOiIyMDE4LTA0LTI1VDA5OjM4OjU0LjIyOCswMDAwIn1dfQ=="}"
我想提取正文消息并将其转换。
在使用 JSONconverter 后,我已经尝试过这个功能:
return msg.payload.body;
但我得到了他的错误:“函数试图发送字符串类型的消息”
最好的祝福
解决方案
一个 Function 节点必须返回一个消息对象——而不是一个普通的值。这就是为什么您会收到错误消息,告诉您函数正在发送字符串。
如果您希望它发送的消息的有效负载是该字符串值,您可以这样做:
msg.payload = msg.payload.body;
return msg;
对于这种类型的事情,最好使用 Change 节点移动 msg.payload.body
到msg.payload
.
推荐阅读
- python - 将复杂逻辑表达式转换为 CNF(无指数爆炸)
- c# - 混合 WebView 导航和导航事件在 Xamarin 表单中没有响应
- c++ - QObject 子类未检测到 QGuiApplication 事件循环
- excel - 在 VBA 中查找适用于 MS Access 和 MS Excel 的应用程序目录路径
- python - 如何使用 Beautiful Soup 刮桌子?
- javascript - 用于不和谐调平的带有画布的进度条
- google-sheets - 基于单个单元格中的多个日期条件格式化多个单元格
- javascript - 如何用 JS 翻译页面?
- python-3.x - 删除字典中的嵌套列表
- android - Android 应用程序级别 build.gradle 给出错误:httpclient 定义的类与 Android 现在提供的类冲突