You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeRED函数节点为何仅返回单个值?如何实现多值返回?

Node-RED Function节点同时返回多个输出的解决方法

问题核心

你的代码逻辑本身没问题,但Function节点默认只有1个输出端子,所以返回数组时只会输出第一个元素,逗号表达式则是取最后一个值返回。要同时输出两个值,需要两步操作:

1. 给Function节点添加第二个输出端子

在Node-RED编辑器中:

  • 双击打开你的Function节点
  • 在节点配置面板右侧找到「Outputs」选项,把数值改成2
  • 点击「Done」保存配置

2. 代码优化(可选,更严谨)

原代码里的if(left || right)判断没有实际作用,因为left和right都是对象类型,永远为true。如果需要处理readResults元素可能不存在的情况,可以调整代码:

var left = msg.payload.readResults[0] ? { payload : msg.payload.readResults[0].v } : null;
var right = msg.payload.readResults[1] ? { payload : msg.payload.readResults[1].v } : null;
node.warn(left);
node.warn(right);
// 返回数组对应2个输出端子,null会跳过对应输出
return [left, right];

原理说明

Node-RED的Function节点中,返回数组时:

  • 数组第1个元素对应节点第1个输出端子
  • 数组第2个元素对应节点第2个输出端子
  • 若某个元素为null或undefined,对应的输出端子不会发送消息

配置完成后,两个输出端子就能分别拿到left和right的内容了。

内容的提问来源于stack exchange,提问作者Glenn94

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:15:37