60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
import mysql from 'promise-mysql'
|
|
import { DB as DBConfig } from '../config'
|
|
|
|
let pool = mysql.createPool({
|
|
// connectionLimit: 4, // 连接池最多可以创建的连接数
|
|
host: DBConfig.host,
|
|
user: DBConfig.username,
|
|
password: DBConfig.password,
|
|
database: DBConfig.database,
|
|
port: DBConfig.port,
|
|
insecureAuth: true
|
|
})
|
|
|
|
// // 替换SQL字符串中的前缀
|
|
// let SqlFormat = (str) => {
|
|
// if (SystemConfig.mysql_prefix !== 'yi_') {
|
|
// str = str.replace(/yi_/g, SystemConfig.mysql_prefix)
|
|
// }
|
|
// return str
|
|
// }
|
|
|
|
// 执行一行SQL语句并返回结果
|
|
export let query = (sql) => {
|
|
return pool.query(sql)
|
|
}
|
|
|
|
// 执行多行SQL语句并返回结果
|
|
export let querys = (sqls) => {
|
|
let keys = Object.keys(sqls)
|
|
let list = Object.values(sqls)
|
|
let promises = list.map(function (sql) {
|
|
return query(sql)
|
|
})
|
|
|
|
return Promise.all(promises).then(data => {
|
|
let result = {}
|
|
for (let index in data) {
|
|
result[keys[index]] = data[index]
|
|
}
|
|
return result
|
|
})
|
|
}
|
|
|
|
// 返回连接
|
|
export let getSqlConnection = () => {
|
|
return pool.getConnection().disposer(function (connection) {
|
|
pool.releaseConnection(connection)
|
|
})
|
|
}
|
|
|
|
// 连接使用方法
|
|
// var Promise = require("bluebird")
|
|
// Promise.using(getSqlConnection(), function(connection) {
|
|
// return connection.query('select `name` from hobbits').then(function(row) {
|
|
// return process(rows)
|
|
// }).catch(function(error) {
|
|
// console.log(error)
|
|
// })
|
|
// })
|