Node-red学习第8篇--关于function节点的详细介绍

本文详细介绍了Node-red中Function节点的使用,包括编写功能代码、多输出发送、异步消息处理、记录事件、错误处理、数据存储(上下文)、状态显示以及利用其他模块和功能。Function节点允许运行JavaScript代码处理消息,支持创建新消息、发送多条消息、异步操作,并能与其他节点共享数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Function节点允许JavaScript代码针对传入的消息运行,然后返回零个或者多个消息以继续流。

消息以一个称为msg的对象的形式进行传输。按照约定msg有一个属性msg.payload包含了消息的主体(也就是消息的具体内容)。

其他的节点可以把它们自己的属性附加到消息中,并且他们应该在自己的记录中被描述。

写一个功能(Writing a Function)

写进Function节点的代码代表了功能的主体。最简单的功能就是返回消息,比如下面这样:

return msg

如果功能返回的是null,那么将不会有消息在流中传递。

返回的消息对象不必要和一开始传输的对象一样,功能中可以构建一个完全全新的对象在返回消息对象之前。比如:

var newMsg = {payload:msg.payload.length};

return newMsg;

注:构建一个新的消息对象将失去任何一个已经接收到的消息的消息属性。这可能会破坏一些流,比如HTTP/Respone流需要msg.req和msg.res属性被保存到端到端。通常,Function节点应该返回已经传输的对它们的属性做了任何改变消息对象

发送给多个输出(Sending to multiple outputs)

编辑对话的功能允许输出的数量发生改变。如果不只有一个输出,通过发送给多个输出这个功能可以返回一个数组的信息。

这使得写一个取决于一些情况的发送信息给多个不同输出的功能很容易。比如,这个功能将发送任何基于主题banana给第二个输出而不是第一个。

If(msg.topic === ‘banana’){

       return [null,msg];

}else{

return [msg, null];

}

接下来的例子

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值