如何提取从 http 请求中获取的 msg 对象?

How to extract a msg object which I'm getting from a http request?

我还是个新手。我所做的是,我尝试发送 http 请求,并尝试通过我的自定义节点传递以下响应。消息对象如下所示:

[
  {
    "userId": 1,
    "deviceId": 2,
    "type": "SM",
    "eventName": "TemparatureChanged",
    "stateName": "update",
    "eventParameters": [
      {
        "name": "temparature",
        "type": "Double",
        "value": 35.01
      }
    ]
  }
]

如何从上面的 eventParameters 数组中检索 value

我在函数节点中尝试了以下内容:

var data  = msg.eventParameters[0].value;
return data;

而我只想通过调试节点打印上面的属性。我的调试节点包含 msg.payload,我也尝试将它作为一个完整的 msg 对象,但仍然没有成功。

在我的自定义节点 (IOT-Input) js 文件中我得到了这个:

this.on('input', function (msg) {
            node.warn("I saw a payload: "+msg.payload);
            // in this example just send it straight on... should process it here really
            node.send(msg);
});

我的流程是这样的:

我哪里错了?任何帮助都将不胜感激!

msg 是一个数组,所以它应该是:

var data  = msg[0].eventParameters[0].value;

你没有在问题的顶部说你从哪里得到你的示例消息,但如果它可以从你的节点中的 console.log,那么你所拥有的是 msg.payload 而不是msg.

所以你应该使用类似的东西:

var data = msg.payload[0].eventParameters[0].value;

而且你不应该只是从函数节点返回 data,它应该是一个 msg 对象,像这样:

var data = msg.payload[0].eventParameters[0].value;
msg.payload = data;
return msg.payload;