51 lines
1.1 KiB
JavaScript
51 lines
1.1 KiB
JavaScript
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();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
exports.execQuery = execQuery;
|