Node-RED中为不同CSV添加统一列并合并的实现求助
Node-RED 合并CSV并添加指定列的Function节点方案
针对你当前流程的Function节点代码(先Join再处理)
假设你的Join节点已将两个CSV的行数组合并为一个包含两个子数组的数组(即msg.payload = [第一个CSV行数组, 第二个CSV行数组]),使用以下代码:
// 为第一个CSV的所有行添加Home=1A const firstBatch = msg.payload[0].map(row => ({ ...row, Home: "1A" })); // 为第二个CSV的所有行添加Home=2A const secondBatch = msg.payload[1].map(row => ({ ...row, Home: "2A" })); // 合并两个处理后的数组 msg.payload = firstBatch.concat(secondBatch); return msg;
更高效的流程优化建议(先添加列再合并)
可以简化流程,无需先Join再处理:在每个分支的CSV节点之后,各加一个相同的Function节点,直接给当前分支的行添加对应Home值,之后再用Join节点合并:
Function节点代码(两个分支通用):
// 利用msg.topic的值为每行添加Home列 msg.payload = msg.payload.map(row => ({ ...row, Home: msg.topic })); return msg;
之后将两个分支的输出接入Join节点,设置Join模式为Array,即可直接得到合并后的完整数据。
内容的提问来源于stack exchange,提问作者Ekisha
相关产品推荐
相关产品推荐

