修复filter解析空条件异常的bug; table方法支持 AS 别名

master 3.0.2
宇天 2018-06-21 20:57:45 +08:00
parent 3081d21558
commit d933348e8d
3 changed files with 32 additions and 17 deletions

View File

@ -1,10 +1,13 @@
# 3.0.1 / 2018-06-05
# 3.0.2 / 2018-06-21
* 修复filter解析空条件异常的bug;
* table方法支持 AS 别名。
# 3.0.1 / 2018-06-05
* 修复filter解析的一个bug
# 3.0.0 / 2018-04-16
> 这是一个全新的大版本, 不向下兼容 2.x。
* 重构 API, 使用链式操作, 逻辑更加清晰
@ -13,32 +16,32 @@
* 新增 tableCreate/dbCreate 方法, 支持创建数据库/数据表
* 新增 indexCreate/indexDrop/indexList, 支持对索引的增删改查
# 2.2.2 / 2018-03-22
# 2.2.2 / 2018-03-22
* 增加时区和 BIGINT 配置
# 2.2.0 / 2018-03-15
# 2.2.0 / 2018-03-15
* 连接池增加失败移除配置和恢复时间
# 2.1.3 / 2018-03-14
# 2.1.3 / 2018-03-14
* 优化异常输出
# 2.1.2 / 2018-03-06
# 2.1.2 / 2018-03-06
* Bug 修复
* 修改连接方式
* 异常返回的格式改为对象
# 2.1.0 / 2018-03-03
# 2.1.0 / 2018-03-03
* 大重构, 更加简练, 结构也更加合理
# 2.0.1 / 2017-05-22
# 2.0.1 / 2017-05-22
* 优化一处由于 js 对象引用类型引起的混乱
# 2.0.0 / 2017-02-26
# 2.0.0 / 2017-02-26
* new project

View File

@ -113,6 +113,9 @@ function parse$opt(opt) {
// 格式化表名
function fixtable(name) {
if (/ AS /i.test(name)) {
return name
}
return name
.split('.')
.map(it => {
@ -150,22 +153,31 @@ const parser = {
},
filter(opt) {
let sql = ''
if (!sql) {
return ' '
}
if (typeof opt === 'string') {
return ` WHERE ${opt} `
sql += opt
}
if (typeof opt === 'function') {
return ` WHERE ${opt()} `
sql += opt()
}
if (typeof opt === 'object') {
if (opt.$and) {
return ` WHERE ${parse$and(opt.$and)}`
sql += parse$and(opt.$and)
} else if (opt.$or) {
return ` WHERE ${parse$or(opt.$or)}`
sql += parse$or(opt.$or)
} else {
sql += parse$opt(opt)
}
return ` WHERE ${parse$opt(opt)}`
}
sql = sql.trim()
if (sql) {
return ` WHERE ${sql} `
} else {
return ' '
}
},
select(arr = ['*']) {

View File

@ -1,6 +1,6 @@
{
"name": "mysqli",
"version": "3.0.1",
"version": "3.0.2",
"description": "MySQL tool",
"main": "index.js",
"dependencies": {