UNPKG

nooljs

Version:

Full stack JavaScript framework created top of Nodejs, express, and Socket-io, and Angularjs

51 lines (47 loc) 1.77 kB
// noolServer.js 0.1.0 // Copyright (c) 2016 Chandru Krishnar <chandru0507@gmail.com> // MIT module.exports = { execute: function (config, query, data, option) { var mysql = require('mysql'); var Q = require('q'); var pool = mysql.createPool(config); if (data) { for (var i = 0; i < data.length; i++) { // console.log("query:%s, name:%s, value:%s" , query, data[i].name, data[i].value); query = query.replace("{{" + data[i].name + "}}", "'" + data[i].value.replace(/'/g, "''") + "'"); } } var arr = query.split(";"); for (var i = 0; i < arr.length; i++) { if ((arr[i].match(/'/g) || []).length % 2 == 1 && (i + 1 < arr.length)) { arr[i + 1] = arr[i] + ',' + arr[i + 1]; arr.splice(i, 1); i--; } } var querystring = query; var paramArr = []; if (arr.length > 1) { // we have params if(arr[1].length > 0 ) paramArr = JSON.parse(arr[1]); querystring = arr[0]; } var deferred = Q.defer(); console.log("mysql-execute:%s ", querystring); pool.query(querystring, paramArr, function (err, rows, fields) { if (!err) { // console.log("mysql-execute-resultset resolved. :%s ", querystring); deferred.resolve(rows); } else { console.log("mysql-execute-resultset error. :%s ", querystring); deferred.reject(err); } }); return deferred.promise; } }