我正在使用Node Red,我需要了解如何循环JSON对象,并且对于每个JSON对象,向另一个端点发出HTTP请求。
换句话说:这是我需要表达的用例 Node Red发布HTTP帖子以获取所有设备 所有设备都以JSON格式返回,包含多个信息和DEVICE_ID 对于每个设备ID,Node Red必须通过上述id发出另一个HTTP请求,以获取该设备的所有资源。
我遇到麻烦,因为我期望Node Red有一个专用的循环块,但不是那样的。那么我该如何制定解决方法呢?
如果我使用“function”块,并在那里键入代码来进行循环,如何使用Http块“返回”流程视图?谢谢!
答案 0 :(得分:1)
在基于流的编程中,您倾向于避免循环。最“流动”的方法是将JSON输出分成多个消息。
如果您熟悉JavaScript,最简单的方法是使用函数节点。在JS代码中,在JSON上创建循环并在循环内,使用node.send(msgobject)
输出新消息。您可以删除代码末尾的正常return msg
,因为在此实例中您不需要它。显然,您必须为每个循环实例创建msgobject
(或者内联创建它)。当循环退出并且到达函数节点代码的末尾时,Node-RED将继续到流程中的下一个节点,您不需要做任何特殊的操作。
否则,您可以使用核心split
节点(或其中一个提供的拆分节点)将数据拆分为多个消息。
答案 1 :(得分:0)
为此存在一些专门的节点,例如 node-red-contrib-loop。