wangrong
2021-12-17 1c2ac631d4afda8076da79c1d5e656085bdb41b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
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)
  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
}