您好,当我想将 msg.payload 对象拆分为 4 个单独的有效负载时,我遇到了问题。
当我运行我的函数时,我只得到了第一个
功能节点
//
var payload = msg.payload;
// Create separate messages for each key
var msgAddress = { payload: {} };
var msgUtetemp = { payload: {} };
var msgBorvarde = { payload: {} };
var msgTempElement = { payload: {} };
// Loop through the payload keys and assign them to the appropriate message
for (var key in payload) {
if (payload.hasOwnProperty(key)) {
if (key.endsWith('_address')) {
msgAddress.payload[key] = payload[key];
} else if (key.endsWith('_utetemp')) {
msgUtetemp.payload[key] = payload[key];
} else if (key.endsWith('_borvarde')) {
msgBorvarde.payload[key] = payload[key];
} else if (key.endsWith('_tempElement')) {
msgTempElement.payload[key] = payload[key];
}
}
}
// Log the separated payloads
console.log("msgAddress:", msgAddress);
console.log("msgUtetemp:", msgUtetemp);
console.log("msgBorvarde:", msgBorvarde);
console.log("msgTempElement:", msgTempElement);
// Return an array containing the separated payloads
return [msgAddress, msgUtetemp, msgBorvarde, msgTempElement]
但是当我运行代码时,我只得到消息中的第一个 msg.payload“msgAddress:”。
我正在记录完整的 msg.object,
从函数节点返回消息数组时,您需要将其设为二维数组以从单个输出返回所有消息。
例如
return [[msgAddress, msgUtetemp, msgBorvarde, msgTempElement]]
这是因为第一级数组是要输出的端口,我猜你只配置了 1 个输出端口,因此所有其他端口都被丢弃。
文档:https://nodered.org/docs/user-guide/writing-functions#multiple-messages