2022-01-21 16:33:56 +08:00

60 lines
1.3 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();
}
});
}
});
});
}
async function execOneQuery(sql, params) {
let {err, rows} = await execQuery(sql, params);
return {
'err': err,
'row': rows[0]
};
}
exports.execQuery = execQuery;
exports.execOneQuery = execOneQuery;