我正在使用node-red,我想创建自定义函数以从传入消息中访问某些索引。传入的消息看起来像这样
{ "node": "02010101", "base64": "Cro=" }
它来自node-red中的json功能块(一个解析msg.payload以将JSON字符串转换为javascript对象的函数。将结果放回到有效负载中 ),我可以使用调试块来获取索引 base64 ,但是如果我尝试用我自己的函数做同样的事情来处理以后,我不能和我得到错误
TypeError: Cannot assign to read only property '_msgid' of Cro=
我的功能真的很傻,现在只是
return msg["base64"];
据我所知,它抱怨收到的消息中没有属性,所以我想访问帽子索引,我该怎么办?
编辑:如果我设置调试块以显示整个消息对象而不仅仅是msg.base64本身,我得到了这个
{ "node": "02010101", "base64": "Cro=", "_msgid": "6babd6e.f945428" }
答案 0 :(得分:1)
函数节点应该返回一个完整的msg对象而不仅仅是一个字符串。
如果您只想发送字符串值,您应该执行以下操作:
msg.payload = msg.payload["base64"];
return msg
答案 1 :(得分:0)
解决方案很简单,只需返回整个消息,而不仅仅是字段。使用以下代码段使其正常工作。
获取解密模块
msg.payload = msg.decrypted;
return msg;
base64Decode
msg.payload = msg.base64;
return msg;