Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
node-devlop-rest-api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhouzihao
node-devlop-rest-api
Commits
92f09c16
Commit
92f09c16
authored
Mar 25, 2020
by
zhouzihao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dev-添加分页查询的特性
parent
554510d5
Pipeline
#109
canceled with stages
Changes
4
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
98 additions
and
6 deletions
+98
-6
api/projectApi.js
api/projectApi.js
+1
-3
route.js
route.js
+1
-0
tools/databaseHelper.js
tools/databaseHelper.js
+74
-3
tools/helper.js
tools/helper.js
+22
-0
No files found.
api/projectApi.js
View file @
92f09c16
...
@@ -19,9 +19,7 @@ module.exports = {
...
@@ -19,9 +19,7 @@ module.exports = {
// 获取全部列表
// 获取全部列表
getList
:
helper
.
listAllBuilder
(
'
project
'
,
'
*
'
,
{}),
getList
:
helper
.
listAllBuilder
(
'
project
'
,
'
*
'
,
{}),
// 获取分页列表
// 获取分页列表
getPagedList
:
(
req
,
res
)
=>
{
getPagedList
:
helper
.
pagedBuilder
(
'
project
'
,
'
p_id
'
,
{}),
//
},
//新建更新数据
//新建更新数据
saveProject
:
helper
.
saveBuilder
(
'
project
'
,
'
p_id
'
),
saveProject
:
helper
.
saveBuilder
(
'
project
'
,
'
p_id
'
),
};
};
\ No newline at end of file
route.js
View file @
92f09c16
...
@@ -26,5 +26,6 @@ app.post("/env/", envApi.saveEnv);
...
@@ -26,5 +26,6 @@ app.post("/env/", envApi.saveEnv);
app
.
post
(
"
/project/
"
,
projectApi
.
saveProject
);
app
.
post
(
"
/project/
"
,
projectApi
.
saveProject
);
app
.
get
(
"
/project/
"
,
projectApi
.
getList
);
app
.
get
(
"
/project/
"
,
projectApi
.
getList
);
app
.
get
(
"
/project/len
"
,
projectApi
.
getCount
);
app
.
get
(
"
/project/len
"
,
projectApi
.
getCount
);
app
.
get
(
"
/project/page
"
,
projectApi
.
getPagedList
);
module
.
exports
=
app
;
module
.
exports
=
app
;
\ No newline at end of file
tools/databaseHelper.js
View file @
92f09c16
...
@@ -43,8 +43,9 @@ var saveJsonToDb = (json, table, key) => {
...
@@ -43,8 +43,9 @@ var saveJsonToDb = (json, table, key) => {
* @param {*} json 查询条件
* @param {*} json 查询条件
* @param {*} table 数据表名称
* @param {*} table 数据表名称
* @param {*} items 要查询的字段
* @param {*} items 要查询的字段
* @param {Object} extra 额外值
*/
*/
var
listDbByJson
=
(
json
,
table
,
items
)
=>
{
var
listDbByJson
=
(
json
,
table
,
items
,
extra
=
{}
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
var
query
=
{};
var
query
=
{};
//整理字段
//整理字段
...
@@ -63,13 +64,15 @@ var listDbByJson = (json, table, items) => {
...
@@ -63,13 +64,15 @@ var listDbByJson = (json, table, items) => {
var
citems
=
Object
.
assign
({},
items
);
var
citems
=
Object
.
assign
({},
items
);
query
=
_
.
merge
(
query
,
citems
);
query
=
_
.
merge
(
query
,
citems
);
}
}
//添加额外查询条件 比如order by等
var
extraClone
=
Object
.
assign
({},
extra
);
query
=
_
.
merge
(
query
,
extraClone
);
var
cloned
=
Object
.
assign
({},
json
);
var
cloned
=
Object
.
assign
({},
json
);
query
[
'
$where
'
]
=
cloned
;
query
[
'
$where
'
]
=
cloned
;
query
[
'
$from
'
]
=
table
;
query
[
'
$from
'
]
=
table
;
var
sql
=
db
.
sql
.
$select
(
query
);
var
sql
=
db
.
sql
.
$select
(
query
);
db
.
query
(
sql
.
sql
,
sql
.
values
)
db
.
query
(
sql
.
sql
,
sql
.
values
)
.
then
((
rows
)
=>
{
.
then
((
rows
)
=>
{
resovle
(
rows
);
resovle
(
rows
);
...
@@ -79,7 +82,75 @@ var listDbByJson = (json, table, items) => {
...
@@ -79,7 +82,75 @@ var listDbByJson = (json, table, items) => {
});
});
}
}
/**
* 根据条件获取数据长度
* @param {*} json
* @param {*} table
* @param {*} key
*/
var
countByJson
=
(
json
,
table
,
key
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
listDbByJson
(
json
,
table
,
{
len
:
{
$count
:
key
}
})
.
then
((
res
)
=>
{
if
(
_
.
isEmpty
(
res
))
{
resovle
(
0
)
}
resovle
(
res
[
0
][
'
len
'
]);
}).
catch
((
err
)
=>
{
reject
(
JSON
.
stringify
(
err
));
});
});
}
/**
* 获取分页数据
* @param {*} json 查询条件
* @param {*} table
* @param {*} items
* @param {*} key
* @param {*} page
* @param {*} pageSize
*/
var
pagedDbByJson
=
(
json
,
table
,
items
,
key
,
page
=
1
,
pageSize
=
10
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
countByJson
(
json
,
table
,
key
)
.
then
((
len
)
=>
{
if
(
len
>
0
)
{
return
listDbByJson
(
json
,
table
,
items
,
{
$limit
:
pageSize
,
$offset
:
(
page
-
1
)
*
pageSize
}).
then
((
data
)
=>
{
resovle
({
data
,
paged
:
{
page
,
pageSize
,
total
:
len
}
});
}).
catch
((
err
)
=>
{
throw
new
Error
(
err
);
})
}
else
{
resovle
({
data
:
[],
paged
:
{
page
,
pageSize
,
total
:
0
}
});
}
}).
catch
((
err
)
=>
{
reject
(
JSON
.
stringify
(
err
));
})
});
}
module
.
exports
=
{
module
.
exports
=
{
saveJsonToDb
,
saveJsonToDb
,
listDbByJson
,
listDbByJson
,
countByJson
,
pagedDbByJson
,
}
}
\ No newline at end of file
tools/helper.js
View file @
92f09c16
...
@@ -42,7 +42,29 @@ var listAllBuilder = (table, items, condition, translate = (x) => { return x })
...
@@ -42,7 +42,29 @@ var listAllBuilder = (table, items, condition, translate = (x) => { return x })
};
};
}
}
/**
* 分页查询构建器
* @param {*} table
* @param {*} key
* @param {*} items
*/
var
pagedBuilder
=
(
table
,
key
,
items
)
=>
{
return
(
req
,
res
)
=>
{
var
page
=
_
.
toInteger
(
_
.
get
(
req
.
query
,
'
page
'
,
1
));
var
pageSize
=
_
.
toInteger
(
_
.
get
(
req
.
query
,
'
pageSize
'
,
10
));
_
.
unset
(
req
.
query
,
'
page
'
);
_
.
unset
(
req
.
query
,
'
pageSize
'
);
databaseHelper
.
pagedDbByJson
(
req
.
query
,
table
,
items
,
key
,
page
,
pageSize
)
.
then
((
data
)
=>
{
res
.
end
(
JSON
.
stringify
(
data
));
}).
catch
((
err
)
=>
{
res
.
end
(
JSON
.
stringify
(
err
));
})
};
}
module
.
exports
=
{
module
.
exports
=
{
saveBuilder
,
saveBuilder
,
listAllBuilder
,
listAllBuilder
,
pagedBuilder
,
};
};
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment