diff --git a/nodes/core/io/32-udp.js b/nodes/core/io/32-udp.js index 096de479c..400f4bf18 100644 --- a/nodes/core/io/32-udp.js +++ b/nodes/core/io/32-udp.js @@ -63,7 +63,7 @@ module.exports = function(RED) { udpInputPortsInUse[this.port] = server; } else { - node.warn(RED._("udp.errors.alreadyused",{port:node.port})); + node.log(RED._("udp.errors.alreadyused",{port:node.port})); server = udpInputPortsInUse[this.port]; // re-use existing } @@ -172,8 +172,7 @@ module.exports = function(RED) { if (process.version.indexOf("v0.10") === 0) { opts = node.ipv; } var sock; - var p = this.port; - if (node.multicast != "false") { p = this.outport||"0"; } + var p = this.outport || this.port || "0"; if (udpInputPortsInUse[p]) { sock = udpInputPortsInUse[p]; node.log(RED._("udp.status.re-use",{outport:node.outport,host:node.addr,port:node.port})); diff --git a/nodes/core/locales/en-US/messages.json b/nodes/core/locales/en-US/messages.json index d59f3d1bf..0fc2f991e 100644 --- a/nodes/core/locales/en-US/messages.json +++ b/nodes/core/locales/en-US/messages.json @@ -697,7 +697,9 @@ "errors": { "dropped-object": "Ignored non-object payload", "dropped": "Ignored unsupported payload type", - "dropped-error": "Failed to convert payload" + "dropped-error": "Failed to convert payload", + "schema-error": "JSON Schema error", + "schema-error-compile": "JSON Schema error: failed to compile schema" }, "label": { "o2j": "Object to JSON options", diff --git a/nodes/core/logic/17-split.js b/nodes/core/logic/17-split.js index f75e5fc21..09743f40c 100644 --- a/nodes/core/logic/17-split.js +++ b/nodes/core/logic/17-split.js @@ -686,10 +686,13 @@ module.exports = function(RED) { } else { if (!isNaN(propertyIndex)) { group.payload[propertyIndex] = property; + group.currentCount++; } else { - group.payload.push(property); + if (property !== undefined) { + group.payload.push(property); + group.currentCount++; + } } - group.currentCount++; } group.msg = Object.assign(group.msg, msg); var tcnt = group.targetCount; diff --git a/nodes/core/parsers/70-JSON.html b/nodes/core/parsers/70-JSON.html index 565bae9a0..32b5a332a 100644 --- a/nodes/core/parsers/70-JSON.html +++ b/nodes/core/parsers/70-JSON.html @@ -31,6 +31,8 @@
payloadobject | string
A JavaScript object or JSON string.
+
schemaobject
+
An optional JSON Schema object to validate the payload against.

Outputs

@@ -41,6 +43,9 @@
  • If the input is a JavaScript object it creates a JSON string. The string can optionally be well-formatted.
  • +
    schemaErrorarray
    +
    If JSON schema validation fails, the catch node will have a schemaError property + containing an array of errors.

    Details

    By default, the node operates on msg.payload, but can be configured @@ -53,6 +58,8 @@ receives a String, no further checks will be made of the property. It will not check the String is valid JSON nor will it reformat it if the format option is selected.

    +

    For more details about JSON Schema you can consult the specification + here.