Skip to content

函数 (function)

运行JavaScript代码来处理消息。

输入

任何消息对象。

输出

函数返回的消息对象(可以是单个、多个或无输出)。

详细说明

函数节点允许运行JavaScript代码来处理传入的消息。

代码在函数体内运行,输入消息作为名为 msg 的对象传递。

返回消息

函数应该返回消息对象,或者返回消息对象数组(如果有多个输出)。

如果返回 null,则不发送消息。

可用对象

  • msg: 输入消息对象
  • node: 对节点对象的引用
  • context: 节点上下文存储
  • flow: 流程上下文存储
  • global: 全局上下文存储

发送消息

除了返回消息外,还可以使用 node.send(msg) 发送消息。

对于异步操作,必须使用 node.send() 而不是返回消息。

错误处理

使用 node.error("错误信息", msg) 触发catch节点。

示例

基本消息处理:

javascript
// 修改载荷
msg.payload = msg.payload.toUpperCase();
return msg;

多输出:

javascript
// 根据条件发送到不同输出
if (msg.payload > 10) {
    return [msg, null];  // 发送到第一个输出
} else {
    return [null, msg];  // 发送到第二个输出
}

异步处理:

javascript
// 延迟发送
setTimeout(function() {
    msg.payload = "延迟消息";
    node.send(msg);
}, 1000);

return null; // 不立即返回消息

使用上下文:

javascript
// 计数器示例
var count = context.get('count') || 0;
count += 1;
context.set('count', count);

msg.payload = count;
return msg;

蜀ICP备2025139593号