mirror of
				https://github.com/node-red/node-red-nodes.git
				synced 2025-03-01 10:37:43 +00:00 
			
		
		
		
	fix mysql array handling
This commit is contained in:
		@@ -19,9 +19,8 @@ module.exports = function(RED) {
 | 
				
			|||||||
        var node = this;
 | 
					        var node = this;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function checkVer() {
 | 
					        function checkVer() {
 | 
				
			||||||
            node.connection.query("SELECT version();", [], function(err, rows) {
 | 
					            node.pool.query("SELECT version();", [], function(err, rows, fields) {
 | 
				
			||||||
                if (err) {
 | 
					                if (err) {
 | 
				
			||||||
                    node.connection.release();
 | 
					 | 
				
			||||||
                    node.error(err);
 | 
					                    node.error(err);
 | 
				
			||||||
                    node.status({fill:"red",shape:"ring",text:"Bad Ping"});
 | 
					                    node.status({fill:"red",shape:"ring",text:"Bad Ping"});
 | 
				
			||||||
                    doConnect();
 | 
					                    doConnect();
 | 
				
			||||||
@@ -84,13 +83,13 @@ module.exports = function(RED) {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.on('close', function (done) {
 | 
					        this.on('close', function(done) {
 | 
				
			||||||
            if (this.tick) { clearTimeout(this.tick); }
 | 
					            if (this.tick) { clearTimeout(this.tick); }
 | 
				
			||||||
            if (this.check) { clearInterval(this.check); }
 | 
					            if (this.check) { clearInterval(this.check); }
 | 
				
			||||||
            node.connected = false;
 | 
					            node.connected = false;
 | 
				
			||||||
            node.connection.release();
 | 
					            node.connection.release();
 | 
				
			||||||
            node.emit("state"," ");
 | 
					            node.emit("state"," ");
 | 
				
			||||||
            node.pool.end(function (err) { done(); });
 | 
					            node.pool.end(function(err) { done(); });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    RED.nodes.registerType("MySQLdatabase",MySQLNode, {
 | 
					    RED.nodes.registerType("MySQLdatabase",MySQLNode, {
 | 
				
			||||||
@@ -130,17 +129,17 @@ module.exports = function(RED) {
 | 
				
			|||||||
                        if (Array.isArray(msg.payload)) { bind = msg.payload; }
 | 
					                        if (Array.isArray(msg.payload)) { bind = msg.payload; }
 | 
				
			||||||
                        else if (typeof msg.payload === 'object' && msg.payload !== null) {
 | 
					                        else if (typeof msg.payload === 'object' && msg.payload !== null) {
 | 
				
			||||||
                            bind=msg.payload;
 | 
					                            bind=msg.payload;
 | 
				
			||||||
                            node.mydbConfig.connection.config.queryFormat = function (query, values) {
 | 
					                            node.mydbConfig.connection.config.queryFormat = function(query, values) {
 | 
				
			||||||
                                if (!values){
 | 
					                                if (!values) {
 | 
				
			||||||
                                    return query;
 | 
					                                    return query;
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                                return query.replace(/\:(\w+)/g, function (txt, key) {
 | 
					                                return query.replace(/\:(\w+)/g, function(txt, key) {
 | 
				
			||||||
                                    if (values.hasOwnProperty(key)) {
 | 
					                                    if (values.hasOwnProperty(key)) {
 | 
				
			||||||
                                        return this.escape(values[key]);
 | 
					                                        return this.escape(values[key]);
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
                                    return txt;
 | 
					                                    return txt;
 | 
				
			||||||
                                }.bind(this));
 | 
					                                }.bind(this));
 | 
				
			||||||
                            };          
 | 
					                            };
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        node.mydbConfig.connection.query(msg.topic, bind, function(err, rows) {
 | 
					                        node.mydbConfig.connection.query(msg.topic, bind, function(err, rows) {
 | 
				
			||||||
                            if (err) {
 | 
					                            if (err) {
 | 
				
			||||||
@@ -149,7 +148,7 @@ module.exports = function(RED) {
 | 
				
			|||||||
                                node.error(err,msg);
 | 
					                                node.error(err,msg);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            else {
 | 
					                            else {
 | 
				
			||||||
                                if (rows.constructor.name === "OkPacket") {
 | 
					                                if ( (rows.constructor.name === "OkPacket") || (rows.constructor.name === "Array")) {
 | 
				
			||||||
                                    msg.payload = JSON.parse(JSON.stringify(rows));
 | 
					                                    msg.payload = JSON.parse(JSON.stringify(rows));
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                                else { msg.payload = rows; }
 | 
					                                else { msg.payload = rows; }
 | 
				
			||||||
@@ -157,6 +156,7 @@ module.exports = function(RED) {
 | 
				
			|||||||
                                status = {fill:"green",shape:"dot",text:"OK"};
 | 
					                                status = {fill:"green",shape:"dot",text:"OK"};
 | 
				
			||||||
                                node.status(status);
 | 
					                                node.status(status);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					                            node.mydbConfig.connection.release();
 | 
				
			||||||
                        });
 | 
					                        });
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else {
 | 
					                    else {
 | 
				
			||||||
@@ -174,7 +174,7 @@ module.exports = function(RED) {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            node.on('close', function () {
 | 
					            node.on('close', function() {
 | 
				
			||||||
                if (node.tout) { clearTimeout(node.tout); }
 | 
					                if (node.tout) { clearTimeout(node.tout); }
 | 
				
			||||||
                node.mydbConfig.removeAllListeners();
 | 
					                node.mydbConfig.removeAllListeners();
 | 
				
			||||||
                node.status({});
 | 
					                node.status({});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "name": "node-red-node-mysql",
 | 
					    "name": "node-red-node-mysql",
 | 
				
			||||||
    "version": "0.1.1",
 | 
					    "version": "0.1.2",
 | 
				
			||||||
    "description": "A Node-RED node to read and write to a MySQL database",
 | 
					    "description": "A Node-RED node to read and write to a MySQL database",
 | 
				
			||||||
    "dependencies": {
 | 
					    "dependencies": {
 | 
				
			||||||
        "mysql": "^2.18.1"
 | 
					        "mysql": "^2.18.1"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user