aozhiwei 63392864e1 1
2022-01-24 13:49:00 +08:00

66 lines
1.4 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.length > 0 ? rows[0] : null
};
}
async function execScript(sql, params) {
let {err, rows} = await execQuery(sql, params);
return err;
}
exports.execQuery = execQuery;
exports.execOneQuery = execOneQuery;
exports.execScript = execScript;