当前位置:   article > 正文

Node-RED基础节点探秘:Function节点详细介绍_node-red function

node-red function

Node-RED基础节点探秘:Function节点详细介绍

Function 节点是 Node-RED 中非常重要的一个节点,允许用户使用 JavaScript 编写自定义代码,以实现复杂的数据处理和逻辑控制。通过 Function 节点,用户可以灵活地操作消息数据,进行数据转换、条件判断等。

Function 节点的基本用法

1. 添加 Function 节点

在 Node-RED 编辑器中,从左侧节点库中拖拽 Function 节点到画布上。

2. 配置 Function 节点

  • • 双击节点打开配置窗口。

  • • 输入节点名称(可选)。

  • • 在函数输入框中编写 JavaScript 代码。例如,将消息 payload 转换为大写:

  1. msg.payload = msg.payload.toUpperCase();
  2. return msg;
  • • 保存配置。

透过以上步骤就完成了一个最基础的function节点的应用,将传入的payload转换为大写。在function节点中还有很多的细节功能,接下来将介绍其中几个比较常用的功能。

处理多个输出

1. 多输出的设置

当我们需要在function节点中创建多个输出时,在设置页签可以指定function节点的输出数量,如下图所示

图片

在默认的情况下function节点只有一个输出,并直接返回msg对象进行输出,在设置了多个输出后需要在函数中返回一个数组,这个数组中的每一个元素对应着function节点的一个输出。

2. 多个输出中根据条件进行输出

在某些情况下我们希望function的多个输出节点根据函数中的条件进行判断,在不同的条件下触发不同的输出,这种情况我们可以使用null值来阻止对应的输出,比如三个输出中,将第二个元素设置为null则第二个输出不会触发后续的流程,达到阻止某个输出的情况。

图片

循环发送多个消息

前面我们介绍的触发function节点后续流程的方式都是使用return,但是return将会直接对函数进行返回,返回将会阻止后续的代码的继续执行,有时在流程中我们需要处理一个数组中的数据,对数组的数据进行处理后,每个元素都触发后续流程的执行,此时可以使用node.send方法来发送发送消息给后续的流程,且不会中断当前function节点对后续元素的影响。

图片

日志与调试输出

function节点中提供了以下三个方法,可以在function运行时输出不同等级的日志,从而协助我们对function节点进行调试和日志的记录。

注意: node.log 只会输出到node-red的控制台,而不会输出到node-red的调试窗口,node.warn和node.error将会同时输出到node-red的调试窗口

  1. node.log("这是一行普通日志");
  2. node.warn("这是一行警告日志");
  3. node.error("这是一行错误日志");

另外我们还可以使用node.status方法来设置function节点的状态。

  1. node.status({fill:"red",shape:"ring",text:"disconnected"});
  2. node.status({fill:"green",shape:"dot",text:"connected"});
  3. node.status({text:"Just text status"});
  4. node.status({});   // 清空状态

上下文数据

在function节点中除了能使用在change节点中也可以使用的flow/global这两个作用域的上下文数据,还有一个在节点作用域内的上下文数据。使用context变量进行访问。如下图所示使用context变量实现了对节点消息处理次数的统计。

图片

总结

Node-RED 的 Function 节点提供了强大的数据处理和逻辑控制能力。通过本文的详细介绍,希望读者能够全面掌握 Function 节点的使用,包括基本用法、输出处理、多输出创建、循环消息的触发,调试输出及上下文数据的使用。在实际项目中灵活应用这些技巧,可以显著提高开发效率和程序的灵活性。如果有更多的想法,欢迎给我发送消息或留言,Node-RED 社区和官方文档也是很好的资源。

欢迎关注我的公众号“nodered-co”,原创技术文章第一时间推送。

关注公众号并回复“教程”获取约200页"Node-red中文教程"

图片

Node-red function节点官方文档[1]

引用链接

[1] Node-red function节点官方文档: https://nodered.org/docs/user-guide/writing-functions

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/993499
推荐阅读
相关标签
  

闽ICP备14008679号