1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

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>
<div class="form-tips"> <div class="form-tips">
If key is blank, the topic will be used as the key.<br> 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> </div>
</script> </script>

View File

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