我正在使用Node Red,我需要了解如何循环JSON对象,以及如何针对每个JSON对象向另一个端点发出HTTP请求。
换句话说:这是我需要表示的用例。
Node Red生成一个HTTP post来获取所有设备。
所有设备都在一个JSON中返回,其中包含几个信息和一个DEVICE_ID。
对于每个设备ID,Node Red必须发出另一个传递上述id的HTTP请求,以获取该设备的所有资源。
我遇到了麻烦,因为我希望Node Red有一个专门的循环块,但事实并非如此。那么,我该如何解决这个问题呢?
如果我使用了"function“块,并在那里输入了生成循环的代码,如何使用Http块”返回“到flow视图?谢谢!
发布于 2018-03-05 04:59:26
在基于流的编程中,您倾向于避免循环。最“类似流”的方法是将JSON输出拆分为多个消息。
如果您熟悉JavaScript,最简单的方法是使用函数节点。在JS代码中,在JSON上创建一个循环,并在循环中使用node.send(msgobject)输出一条新消息。您可以删除代码末尾的普通return msg,因为在此实例中您不需要它。显然,您必须为每个循环实例创建msgobject (或内联创建它)。当循环退出并且您到达函数节点代码的末尾时,Node-RED将继续到流中的下一个节点,您不需要做任何特殊的事情。
否则,您可以使用核心split节点(或贡献的拆分节点之一)将数据拆分成多个消息。
发布于 2021-05-11 16:41:35
存在一些专门用于此目的的节点,例如node-red-contrib-loop。
https://stackoverflow.com/questions/49068322
复制相似问题