函数 (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;