parent
5a3ea70687
commit
3f45448101
|
@ -1,3 +1,10 @@
|
||||||
|
2.1.1 / 2018-03-06
|
||||||
|
==================
|
||||||
|
* Bug修复
|
||||||
|
* 异常返回的格式改为对象
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.1.0 / 2018-03-03
|
2.1.0 / 2018-03-03
|
||||||
==================
|
==================
|
||||||
* 大重构, 更加简练, 结构也更加合理
|
* 大重构, 更加简练, 结构也更加合理
|
||||||
|
|
4
index.js
4
index.js
|
@ -64,12 +64,12 @@ class Mysqli {
|
||||||
|
|
||||||
this.pool.getConnection(slave, (err, conn) => {
|
this.pool.getConnection(slave, (err, conn) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject(`MySQL connect ${err}`)
|
return defer.reject({ err: `MySQL connect ${err}`, sql: '' })
|
||||||
}
|
}
|
||||||
if (db) {
|
if (db) {
|
||||||
conn.query('USE ' + db, err => {
|
conn.query('USE ' + db, err => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject('Select DB ' + err)
|
return defer.reject({ err: 'Select DB ' + err, sql: '' })
|
||||||
}
|
}
|
||||||
defer.resolve(conn)
|
defer.resolve(conn)
|
||||||
})
|
})
|
||||||
|
|
|
@ -17,9 +17,12 @@ class Method {
|
||||||
return this.defer.then(conn => {
|
return this.defer.then(conn => {
|
||||||
const defer = Promise.defer()
|
const defer = Promise.defer()
|
||||||
|
|
||||||
conn.query('SHOW databases', (err, row) => {
|
conn.query('SHOW DATABASES', (err, row) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject('SHOW databases ' + err)
|
return defer.reject({
|
||||||
|
err: 'SHOW DATABASES ' + err,
|
||||||
|
sql: ''
|
||||||
|
})
|
||||||
}
|
}
|
||||||
defer.resolve(row.map(it => it.Database))
|
defer.resolve(row.map(it => it.Database))
|
||||||
})
|
})
|
||||||
|
@ -33,9 +36,12 @@ class Method {
|
||||||
return this.defer.then(conn => {
|
return this.defer.then(conn => {
|
||||||
const defer = Promise.defer()
|
const defer = Promise.defer()
|
||||||
|
|
||||||
conn.query('SHOW tables', (err, row) => {
|
conn.query('SHOW TABLES', (err, row) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject('SHOW tables ' + err)
|
return defer.reject({
|
||||||
|
err: 'SHOW TABLES ' + err,
|
||||||
|
sql: ''
|
||||||
|
})
|
||||||
}
|
}
|
||||||
defer.resolve(row.map(it => Object.values(it)[0]))
|
defer.resolve(row.map(it => Object.values(it)[0]))
|
||||||
})
|
})
|
||||||
|
@ -50,16 +56,17 @@ class Method {
|
||||||
*/
|
*/
|
||||||
query(sql) {
|
query(sql) {
|
||||||
if (typeof sql !== 'string')
|
if (typeof sql !== 'string')
|
||||||
return Promise.reject(
|
return Promise.reject({
|
||||||
`Query error, argument sql must be string. ${typeof sql} given`
|
err: `Query error, argument sql must be string. ${typeof sql} given`,
|
||||||
)
|
sql
|
||||||
|
})
|
||||||
|
|
||||||
return this.defer.then(conn => {
|
return this.defer.then(conn => {
|
||||||
const defer = Promise.defer()
|
const defer = Promise.defer()
|
||||||
|
|
||||||
conn.query(sql, (err, result) => {
|
conn.query(sql, (err, result) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject(`Query ${err}; \nLast exec SQL:「${sql}」`)
|
return defer.reject({ err: `Query ${err}`, sql })
|
||||||
}
|
}
|
||||||
defer.resolve(result)
|
defer.resolve(result)
|
||||||
})
|
})
|
||||||
|
@ -69,12 +76,12 @@ class Method {
|
||||||
|
|
||||||
find(condition, select) {
|
find(condition, select) {
|
||||||
const { table, leftJoin, rightJoin, join, where, sort, limit } = condition
|
const { table, leftJoin, rightJoin, join, where, sort, limit } = condition
|
||||||
|
let sql = ''
|
||||||
if (!table) {
|
if (!table) {
|
||||||
return Promise.reject('Filter Error: empty table')
|
return Promise.reject({ err: 'Find Error: empty table', sql })
|
||||||
}
|
}
|
||||||
|
|
||||||
let sql = parser.select(select)
|
sql = parser.select(select)
|
||||||
sql += `FROM ${table} `
|
sql += `FROM ${table} `
|
||||||
if (leftJoin) {
|
if (leftJoin) {
|
||||||
sql += parser.leftJoin(leftJoin)
|
sql += parser.leftJoin(leftJoin)
|
||||||
|
@ -103,7 +110,7 @@ class Method {
|
||||||
|
|
||||||
conn.query(sql, (err, result) => {
|
conn.query(sql, (err, result) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject(`Filter ${err}; \nLast exec SQL:「${sql}」`)
|
return defer.reject({ err: `Find ${err}`, sql })
|
||||||
}
|
}
|
||||||
defer.resolve(result)
|
defer.resolve(result)
|
||||||
})
|
})
|
||||||
|
@ -113,24 +120,25 @@ class Method {
|
||||||
|
|
||||||
findOne(condition, select) {
|
findOne(condition, select) {
|
||||||
condition.limit = [1]
|
condition.limit = [1]
|
||||||
return this.filter(condition, select).then(row => {
|
return this.find(condition, select).then(row => {
|
||||||
return row[0] || null
|
return row[0] || null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
count(condition) {
|
count(condition) {
|
||||||
delete condition.limit
|
delete condition.limit
|
||||||
return this.filter(condition, ['count(*) AS total']).then(row => {
|
return this.find(condition, ['count(*) AS total']).then(row => {
|
||||||
return (row[0] && row[0].total) || 0
|
return (row[0] && row[0].total) || 0
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
insert({ table }, doc) {
|
insert({ table }, doc) {
|
||||||
|
let sql = ''
|
||||||
if (!table) {
|
if (!table) {
|
||||||
return Promise.reject('Insert Error: empty table')
|
return Promise.reject({ err: 'Insert Error: empty table', sql })
|
||||||
}
|
}
|
||||||
|
|
||||||
let sql = `INSERT INTO ${table} `
|
sql = `INSERT INTO ${table} `
|
||||||
let keys = []
|
let keys = []
|
||||||
let vals = []
|
let vals = []
|
||||||
|
|
||||||
|
@ -145,7 +153,7 @@ class Method {
|
||||||
|
|
||||||
conn.query(sql, (err, result) => {
|
conn.query(sql, (err, result) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject(`Insert ${err}; \nLast exec SQL: ${sql}`)
|
return defer.reject({ err: `Insert ${err}`, sql })
|
||||||
}
|
}
|
||||||
|
|
||||||
defer.resolve(result.insertId)
|
defer.resolve(result.insertId)
|
||||||
|
@ -156,11 +164,12 @@ class Method {
|
||||||
}
|
}
|
||||||
|
|
||||||
update({ table, where }, doc) {
|
update({ table, where }, doc) {
|
||||||
|
let sql = ''
|
||||||
if (!table) {
|
if (!table) {
|
||||||
return Promise.reject('Update Error: empty table')
|
return Promise.reject({ err: 'Update Error: empty table', sql })
|
||||||
}
|
}
|
||||||
|
|
||||||
let sql = `UPDATE ${table} SET `
|
sql = `UPDATE ${table} SET `
|
||||||
|
|
||||||
let fields = [] //要更新的字段
|
let fields = [] //要更新的字段
|
||||||
for (let i in doc) {
|
for (let i in doc) {
|
||||||
|
@ -179,7 +188,7 @@ class Method {
|
||||||
const defer = Promise.defer()
|
const defer = Promise.defer()
|
||||||
conn.query(sql, (err, res) => {
|
conn.query(sql, (err, res) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject(`Update ${err}; \nLast exec SQL: ${sql}`)
|
return defer.reject({ err: `Update ${err}`, sql })
|
||||||
}
|
}
|
||||||
|
|
||||||
defer.resolve(res.affectedRows)
|
defer.resolve(res.affectedRows)
|
||||||
|
@ -189,11 +198,12 @@ class Method {
|
||||||
}
|
}
|
||||||
|
|
||||||
remove({ table, where }) {
|
remove({ table, where }) {
|
||||||
|
let sql = ''
|
||||||
if (!table) {
|
if (!table) {
|
||||||
return Promise.reject('Remove Error: empty table')
|
return Promise.reject({ err: 'Remove Error: empty table', sql })
|
||||||
}
|
}
|
||||||
|
|
||||||
let sql = `DELETE FROM \`${table}\` `
|
sql = `DELETE FROM \`${table}\` `
|
||||||
|
|
||||||
if (where) {
|
if (where) {
|
||||||
sql += parser.where(where)
|
sql += parser.where(where)
|
||||||
|
@ -203,7 +213,7 @@ class Method {
|
||||||
const defer = Promise.defer()
|
const defer = Promise.defer()
|
||||||
conn.query(sql, (err, res) => {
|
conn.query(sql, (err, res) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return defer.reject(`Remove ${err}; \nLast exec SQL: ${sql}`)
|
return defer.reject({ err: `Remove ${err}`, sql })
|
||||||
}
|
}
|
||||||
|
|
||||||
defer.resolve(res.affectedRows)
|
defer.resolve(res.affectedRows)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mysqli",
|
"name": "mysqli",
|
||||||
"version": "2.1.0",
|
"version": "2.1.1",
|
||||||
"description": "MySQL tool",
|
"description": "MySQL tool",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
Loading…
Reference in New Issue