Added support for storing a msg.payload of type object in a Redis hash

This commit is contained in:
Nicholas Humfrey 2014-10-30 10:09:40 +00:00
parent b54e9edfa6
commit afde3d0ab8
2 changed files with 9 additions and 5 deletions

View File

@ -40,7 +40,7 @@
</div>
<div class="form-tips">
If key is blank, the topic will be used as the key.<br>
If type is hash, payload should be field=value.
If type is hash, payload should be an object or field=value string.
</div>
</script>

View File

@ -84,11 +84,15 @@ module.exports = function(RED) {
if (this.structtype == "string") {
this.client.set(k,RED.util.ensureString(msg.payload));
} else if (this.structtype == "hash") {
var r = hashFieldRE.exec(msg.payload);
if (r) {
this.client.hset(k,r[1],r[2]);
if (typeof msg.payload == "object") {
this.client.hmset(k,msg.payload);
} else {
this.warn("Invalid payload for redis hash");
var r = hashFieldRE.exec(msg.payload);
if (r) {
this.client.hset(k,r[1],r[2]);
} else {
this.warn("Invalid payload for redis hash");
}
}
} else if (this.structtype == "set") {
this.client.sadd(k,msg.payload);