如何创建一个函数来访问node.js中的JSON索引?

时间:2016-04-28 13:11:36

标签: node.js node-red

我正在使用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" }

Image

2 个答案:

答案 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;