You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

node-red-nodes-cf-sqldb-dashdb

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-red-nodes-cf-sqldb-dashdb - npm Package Compare versions

Comparing version

to
0.2.28

198

98-sqldb-dashdb-cf.js

@@ -70,2 +70,4 @@ /**

var dashDBconfig = _getdashDBconfig(n);
var columnList = null;
var insertStatement = null;

@@ -85,3 +87,3 @@ if (!this.table) {

if (dashDBconfig.ssldsn != null) {
var connString = dashDBconfig.ssldsn;
var connString = dashDBconfig.ssldsn;
}

@@ -95,21 +97,2 @@ else {

try {
console.log("dashDB output node: Opening db connection...");
db.openSync(connString);
console.log("dashDB output node: Connection open");
}
catch (e) {
node.error(e.message);
}
var columnList = getColumns(node,db,node.table,"dashDB output node");
var columnListWithQuotes = "";
for (var i = 0; i < columnList.length; i++) {
if (i != 0) columnListWithQuotes += ',';
columnListWithQuotes += "\"" + columnList[i] + "\"";
}
console.log("dashDB output node: columnList: " + columnListWithQuotes);
node.on("close", function() {

@@ -121,18 +104,43 @@ console.log("dashDB: Closing db connection...");

var questionMarks = genQuestionMarks(columnList);
node.on("input", function(msg) {
var insertStatement = "insert into \""+node.table+"\" (" + columnListWithQuotes + ") values("+questionMarks+")";
console.log("dashDB output node: Preparing insert statement: " + insertStatement);
if (!db.connected) {
console.log("DB2 output node: Database not connected; connecting first...");
db.open(connString,doTheRest);
}
else {
//console.log("We are connected because the value for db.connected is: " + db.connected);
doTheRest(null,db);
}
node.on("input", function(msg) {
db.prepare(insertStatement, function (err, stmt) {
if (err) {
node.error("dashDB output node: " + err);
}
else {
console.log("dashDB output node: Prepare successful");
processInput(node,msg,db,stmt,columnList,"dashDB");
}
});
});
function doTheRest (err,conn) {
if (err) {
node.error("DB2 output node, error connecting: " + err);
return;
}
if (columnList == null) {
columnList = getColumns(node,db,node.table,"dashDB output node");
var columnListWithQuotes = "";
for (var i = 0; i < columnList.length; i++) {
if (i != 0) columnListWithQuotes += ',';
columnListWithQuotes += "\"" + columnList[i] + "\"";
}
console.log("dashDB output node: columnList: " + columnListWithQuotes);
var questionMarks = genQuestionMarks(columnList);
insertStatement = "insert into \""+node.table+"\" (" + columnListWithQuotes + ") values("+questionMarks+")";
console.log("dashDB output node: Preparing insert statement: " + insertStatement);
}
db.prepare(insertStatement, function (err, stmt) {
if (err) {
node.error("dashDB output node: " + err);
}
else {
console.log("dashDB output node: Prepare successful");
processInput(node,msg,db,stmt,columnList,"dashDB");
}
});
}
});
}

@@ -168,4 +176,2 @@

function processInput (node,msg,db,stmt,columnList,service) {
console.log(service+": Input event received");
console.log(service+": columnList: "+columnList);
var valueToInsert;

@@ -208,2 +214,6 @@ var batchInsert;

node.error(service+": Insert failed: "+err);
if(err.message.indexOf('30081') > -1) {
console.log("30081 connection error detected; will flag the connection to reconnect on next try");
db.connected = false;
}
} else {

@@ -281,15 +291,2 @@ console.log(service+": Insert successful!");

function connectToDB(node,db,connString) {
try {
console.log("dashDB query node: Opening db connection...");
db.openSync(connString);
console.log("dashDB query node: Connection open");
return false;
}
catch (e) {
node.error(e.message);
return true;
}
}
function dashDBQueryNode(n) {

@@ -322,60 +319,67 @@

jail = connectToDB(node,db,connString);
node.on("close", function() {
console.log("dashDB query node: Closing db connection...");
console.log("DB2 query node: Closing db connection...");
db.closeSync();
console.log("dashDB query node: Connection closed");
console.log("DB2 query node: Connection closed");
});
this.on('input', function(msg) {
if (jail == true) {
console.log("dashDB Query Node: Because previous connection was dropped, attempting reconnect...");
jail = connectToDB(node,db,connString);
if (!db.connected) {
console.log("DB2 query node: Database not connected; connecting first...");
db.open(connString,doTheRest);
}
else {
//console.log("We are connected because the value for db.connected is: " + db.connected);
doTheRest(null,db);
}
function doTheRest (err,conn) {
if (err) {
node.error("DB2 query node, error connecting: " + err);
return;
}
if (jail == false) {
if (query == "" || query == null) {
if (msg.payload == "" || msg.payload == null) {
node.error("dashDB query node: msg.payload is empty!");
return;
else {
if (query == "" || query == null) {
if (msg.payload == "" || msg.payload == null) {
node.error("DB2 query node: msg.payload is empty!");
return;
}
queryToUse = msg.payload;
}
queryToUse = msg.payload;
}
else {
queryToUse = query;
}
var parameterValues=[];
if (params != "" && params != null) {
var path = pathToArray(params.toString());
console.log("Input node: pathToArray: " + path);
parameterValues = extractValues(msg, path);
console.log("Input node: parameterValues: " + parameterValues);
}
db.query(queryToUse,parameterValues,function (err, rows, moreResultSets) {
queryresult = null;
if (err) {
node.error("dashDB query node: " + err);
//debug: to print out the err message
//console.log(util.inspect(err, {showHidden: false, depth: null}))
if(err.message.indexOf('30081') > -1) {
console.log("30081 connection error detected; entering jail mode...");
jail = true;
}
msg.error = err;
} else {
msg.error = null;
console.log("Fetching rows: " + rows);
console.log("value 1: " + JSON.stringify(rows[0]));
if (rows.length == 1) {queryresult = rows[0];}
else {
queryresult = [];
for (var i = 0; i < rows.length; i++) {
queryresult.push(rows[i]);
queryToUse = query;
}
var parameterValues=[];
if (params != "" && params != null) {
var path = pathToArray(params.toString());
console.log("Input node: pathToArray: " + path);
parameterValues = extractValues(msg, path);
console.log("Input node: parameterValues: " + parameterValues);
}
db.query(queryToUse,parameterValues,function (err, rows, moreResultSets) {
queryresult = null;
if (err) {
node.error("DB2 query node, error in query: " + err);
msg.error = err;
if(err.message.indexOf('30081') > -1) {
console.log("30081 connection error detected; will flag the connection to reconnect on next try");
db.connected = false;
}
} else {
msg.error = null;
console.log("Fetching rows: " + rows);
console.log("value 1: " + JSON.stringify(rows[0]));
if (rows.length == 1) {queryresult = rows[0];}
else {
queryresult = [];
for (var i = 0; i < rows.length; i++) {
queryresult.push(rows[i]);
}
}
}
}
msg.payload = queryresult;
node.send(msg);
});
}
msg.payload = queryresult;
node.send(msg);
});
}
}
});

@@ -382,0 +386,0 @@ }

{
"name" : "node-red-nodes-cf-sqldb-dashdb",
"version" : "0.2.27",
"version" : "0.2.28",
"description" : "Node-RED nodes to access SQLDB and dashDB services on Bluemix",

@@ -5,0 +5,0 @@ "dependencies" : {