|
|
const config = global.yoho.config.mysql;
|
|
|
const logger = global.yoho.logger;
|
|
|
const mysql = require('mysql');
|
|
|
const _ = require('lodash');
|
|
|
|
|
|
let sqlHelper = {
|
|
|
database: config.database,
|
|
|
_createPool(database) {
|
|
|
class SqlHelper {
|
|
|
constructor(database) {
|
|
|
this.config = global.yoho.config.mysql;
|
|
|
this.logger = global.yoho.logger;
|
|
|
database = database || 'mysql';
|
|
|
this.pool = mysql.createPool(Object.assign(config.connect, {
|
|
|
this.createPool(database);
|
|
|
}
|
|
|
createPool(database) {
|
|
|
this.pool = mysql.createPool(Object.assign(this.config.connect, {
|
|
|
database
|
|
|
}));
|
|
|
},
|
|
|
}
|
|
|
getConnection() {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
this.pool.getConnection((connErr, connection) => {
|
|
|
if (connErr) {
|
|
|
logger.error(connErr);
|
|
|
this.logger.error(connErr);
|
|
|
reject(connErr);
|
|
|
} else {
|
|
|
resolve(connection);
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
baseConenction(sql) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
this.getConnection().then(connection => {
|
|
|
connection.query(sql, (queryErr, result) => {
|
|
|
connection.release();
|
|
|
if (queryErr) {
|
|
|
logger.error(queryErr);
|
|
|
this.logger.error(queryErr);
|
|
|
reject(queryErr);
|
|
|
} else {
|
|
|
resolve(result);
|
...
|
...
|
@@ -37,28 +39,28 @@ let sqlHelper = { |
|
|
});
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
query(sql) {
|
|
|
return this.baseConenction(sql);
|
|
|
},
|
|
|
}
|
|
|
delete(sql) {
|
|
|
return this.baseConenction(sql).then(result => {
|
|
|
return result.affectedRows;
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
update(sql) {
|
|
|
return this.baseConenction(sql).then(result => {
|
|
|
return result.changedRows;
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
insert(sql) {
|
|
|
return this.baseConenction(sql).then(result => {
|
|
|
return result.insertId;
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
execute(sql) {
|
|
|
return this.baseConenction(sql);
|
|
|
},
|
|
|
}
|
|
|
transaction(sqls) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
this.getConnection().then(connection => {
|
...
|
...
|
@@ -67,7 +69,7 @@ let sqlHelper = { |
|
|
connection.query(sql, (queryErr, result) => {
|
|
|
if (queryErr) {
|
|
|
connection.rollback();
|
|
|
logger.error(queryErr);
|
|
|
this.logger.error(queryErr);
|
|
|
rej(queryErr);
|
|
|
} else {
|
|
|
res(result);
|
...
|
...
|
@@ -93,22 +95,20 @@ let sqlHelper = { |
|
|
});
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
changeDatabase(database) {
|
|
|
return new Promise(resolve => {
|
|
|
this.pool.end(() => {
|
|
|
this._createPool(database);
|
|
|
this.createPool(database);
|
|
|
resolve();
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
}
|
|
|
close() {
|
|
|
this.pool.end(() => {
|
|
|
logger.log('end');
|
|
|
this.logger.log('end');
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
|
|
|
sqlHelper._createPool();
|
|
|
}
|
|
|
|
|
|
module.exports = sqlHelper; |
|
|
module.exports = SqlHelper; |
...
|
...
|
|