【问题标题】:Node Red HTTP POST for every JSON object (loop)每个 JSON 对象的节点红色 HTTP POST(循环)
【发布时间】:2021-05-11 16:41:34
【问题描述】:

我在 Node Red 工作,我需要了解如何循环 JSON 对象,并为每个 JSON 对象向另一个端点发出 HTTP 请求。

换句话说:这是我需要表示的用例。
Node Red 发布 HTTP 帖子以获取所有设备。
所有设备都以 JSON 格式返回,其中包含多个信息和一个 DEVICE_ID。
对于每个设备 ID,Node Red 必须发出另一个 HTTP 请求并传递上述 id,以获取该设备的所有资源。

我遇到了麻烦,因为我希望 Node Red 有一个专用的循环块,但事实并非如此。那么我该如何解决呢?

如果我使用“函数”块,并在那里键入代码来创建我的循环,如何使用 Http 块“返回”到流视图?谢谢!

【问题讨论】:

    标签: json loops node-red


    【解决方案1】:

    在基于流的编程中,您倾向于避免循环。最“流式”的方法是将 JSON 输出拆分为多条消息。

    如果您熟悉 JavaScript,最简单的方法是使用函数节点。在 JS 代码中,在 JSON 上创建一个循环,并在循环内使用node.send(msgobject) 输出一条新消息。您可以删除代码末尾的普通return msg,因为在这种情况下您不需要它。显然,您必须为每个循环实例创建msgobject(或内联创建它)。当循环退出并且您到达函数节点代码的末尾时,Node-RED 将继续到流中的下一个节点,您无需执行任何特殊操作。

    否则,您可以使用核心split 节点(或贡献的拆分节点之一)将数据拆分为多条消息。

    【讨论】:

      【解决方案2】:

      为此目的存在一些专门的节点,例如node-red-contrib-loop

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多