const mysql = require("mysql"); const metamgr = require("./metamgr"); let pool = null; function execQuery(sql, params) { if (!pool) { pool = mysql.createPool({ host : metamgr.getMysqlConf()['host'], user : metamgr.getMysqlConf()['user'], password : metamgr.getMysqlConf()['passwd'], database : metamgr.getMysqlConf()['database'], stringifyObjects : true }); } return new Promise((resolve) => { let ret = { err: null, rows: null, }; pool.getConnection(function(err, conn) { if (err) { try { ret.err = err; resolve(ret); } finally { conn.release(); } } else { conn.query(sql, params, (err, rows) => { try { if (err) { ret.err = err; resolve(ret); } else { ret.err = err; ret.rows = rows; resolve(ret); } } finally { conn.release(); } }); } }); }); } async function execOneQuery(sql, params) { let {err, rows} = await execQuery(sql, params); return { 'err': err, 'row': rows[0] }; } exports.execQuery = execQuery; exports.execOneQuery = execOneQuery;