const mysql = require('koa-mysql') const config = require('../config.js') const pool = mysql.createPool(config.mysql_config) const pool_remote = mysql.createPool(config.db_remote) const pool_remote_server = mysql.createPool(config.db_remote_server) const pool_map = {'master':pool,'remserver':pool_remote_server, 'remote':pool_remote} let query = function(sql, values) { console.log(sql,"sql") return new Promise((resolve, reject) => { pool.getConnection(function(err, connection) { if (err) { reject(err) } else { connection.query(sql, values, (err, rows) => { if (err) { reject(err) } else { resolve(rows) } connection.release() }) } }) }) } /** * 执行并返回LAST_INSERT_ID, 用于插入后返回自增id => new_id * @param {*} sql * @param {*} values */ let queryNewId = function(sql, values) { console.log(sql) return new Promise((resolve, reject) => { pool.getConnection(function(err, connection) { if (err) { reject(err) } else { connection.query(sql, values, (err, rows) => { if (err) { reject(err) } else { connection.query( `select LAST_INSERT_ID() as new_id;`, values, (err, rows) => { resolve(rows) } ) } connection.release() }) } }) }) } let queryproc = function(sql, values) { console.log(sql) return new Promise((resolve, reject) => { pool.getConnection(function(err, connection) { if (err) { reject(err) } else { connection.query(sql, function(err, results) { if (err) { throw err; } console.log('********************************************') console.log(results) resolve(results) connection.release() }) } }) }) } let query_data = function(sql, remote_db, values) { console.log(sql) return new Promise((resolve, reject) => { pool_map[remote_db].getConnection(function(err, connection) { if (err) { reject(err) } else { connection.query(sql, values, (err, rows) => { if (err) { reject(err) } else { resolve(rows) } connection.release() }) } }) }) } module.exports = { query, queryNewId, queryproc, query_data }