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

How to create a function to access JSON index in node.js?

我正在使用 node-red,我想创建自定义函数来访问传入消息中的某些索引。收到的消息看起来像这样

{ "node": "02010101", "base64": "Cro=" }

它来自node-red中的json函数块(一个函数,解析msg.payload转换成JSON字符串to/from 一个 javascript 对象。将结果放回有效载荷 ),我可以使用调试块获取索引 base64,但是如果我尝试对我自己的函数做同样的处理,稍后我不能,我得到错误

TypeError: Cannot assign to read only property '_msgid' of Cro=

我的功能真的很傻现在只是

return msg["base64"];

我知道它抱怨说传入消息中没有属性,所以我想访问帽子索引,我该如何做?

编辑:如果我将调试块设置为显示整个消息对象而不仅仅是 msg.base64 本身,我会得到这个

{ "node": "02010101", "base64": "Cro=", "_msgid": "6babd6e.f945428" }

函数节点应该 return 一个完整的 msg 对象,而不仅仅是一个字符串。

如果您只想发送字符串值,您应该这样做:

msg.payload = msg.payload["base64"];
return msg

解决方案很简单,只需 return 整个消息,而不仅仅是一个字段。使用以下代码片段使其工作。

正在获取解密模块

msg.payload = msg.decrypted;
return msg;

base64解码

msg.payload = msg.base64;
return msg;