add parts support for CSV node (#1496)

* add parts support for CSV node

* make CSV node to preserve incoming parts property
This commit is contained in:
Hiroyasu Nishiyama
2017-12-06 00:39:51 +09:00
committed by Dave Conway-Jones
parent 422fbcb0b7
commit 6d2fd2e641
2 changed files with 62 additions and 12 deletions

View File

@@ -174,12 +174,7 @@ module.exports = function(RED) {
o[node.template[j]] = k[j];
}
if (JSON.stringify(o) !== "{}") { // don't send empty objects
if (node.multi === "one") {
var newMessage = RED.util.cloneMessage(msg);
newMessage.payload = o;
node.send(newMessage); // either send
}
else { a.push(o); } // or add to the array
a.push(o); // add to the array
}
j = 0;
k = [""];
@@ -200,17 +195,28 @@ module.exports = function(RED) {
o[node.template[j]] = k[j];
}
if (JSON.stringify(o) !== "{}") { // don't send empty objects
if (node.multi === "one") {
var newMessage = RED.util.cloneMessage(msg);
newMessage.payload = o;
node.send(newMessage); // either send
}
else { a.push(o); } // or add to the aray
a.push(o); // add to the aray
}
if (node.multi !== "one") {
msg.payload = a;
node.send(msg); // finally send the array
}
else {
var has_parts = msg.hasOwnProperty("parts");
var len = a.length;
for(var i = 0; i < len; i++) {
var newMessage = RED.util.cloneMessage(msg);
newMessage.payload = a[i];
if(!has_parts) {
newMessage.parts = {
id: msg._msgid,
index: i,
count: len
};
}
node.send(newMessage);
}
}
}
catch(e) { node.error(e,msg); }
}