修复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 * 修复filter解析的一个bug
# 3.0.0 / 2018-04-16 # 3.0.0 / 2018-04-16
> 这是一个全新的大版本, 不向下兼容 2.x。 > 这是一个全新的大版本, 不向下兼容 2.x。
* 重构 API, 使用链式操作, 逻辑更加清晰 * 重构 API, 使用链式操作, 逻辑更加清晰
@ -13,32 +16,32 @@
* 新增 tableCreate/dbCreate 方法, 支持创建数据库/数据表 * 新增 tableCreate/dbCreate 方法, 支持创建数据库/数据表
* 新增 indexCreate/indexDrop/indexList, 支持对索引的增删改查 * 新增 indexCreate/indexDrop/indexList, 支持对索引的增删改查
# 2.2.2 / 2018-03-22
# 2.2.2 / 2018-03-22
* 增加时区和 BIGINT 配置 * 增加时区和 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 修复 * 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 对象引用类型引起的混乱 * 优化一处由于 js 对象引用类型引起的混乱
# 2.0.0 / 2017-02-26
# 2.0.0 / 2017-02-26
* new project * new project

View File

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

View File

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