ming_node 2.2.3 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/beforeTest/ApiCloudBaseRpcApiTest.js +17 -0
- package/beforeTest/FileBaseRpcApiTest.js +8 -0
- package/beforeTest/MemorDbTest.js +16 -0
- package/beforeTest/MemoryBaseRestApiTest.js +8 -0
- package/beforeTest/MemoryBaseRpcApiTest.js +8 -0
- package/beforeTest/MiApiCloudClientTest.js +16 -0
- package/beforeTest/MongoDbBaseRestApiTest.js +22 -0
- package/beforeTest/MongoDbBaseRpcApiTest.js +19 -0
- package/beforeTest/MySqlBaseRestApiTest.js +13 -0
- package/beforeTest/MysqlBaseRpcApiTest.js +18 -0
- package/beforeTest/graphql_test.js +12 -0
- package/beforeTest/installPluginTest.js +10 -0
- package/index.js +125 -28
- package/ming_node.md +4 -4
- package/module/BaseMapper.js +37 -4
- package/module/MemoryDb.js +136 -0
- package/module/MiApiCloudClient.js +649 -0
- package/package.json +1 -1
- package/plugins/BaseGraphqlApi/getGraphqlSchema.js +145 -0
- package/plugins/BaseGraphqlApi/getGraphqlSchemaDemo.js +76 -0
- package/plugins/BaseGraphqlApi/index.js +23 -0
- package/plugins/BaseRestApi/AbstractBaseRestApi.js +59 -0
- package/plugins/BaseRestApi/ApiCloudBaseRestApi.js +56 -0
- package/plugins/BaseRestApi/FileBaseRestApi.js +62 -0
- package/plugins/BaseRestApi/MemoryBaseRestApi.js +50 -0
- package/plugins/BaseRestApi/MongoDbBaseRestApi.js +75 -0
- package/plugins/BaseRestApi/MysqlBaseRestApi.js +72 -0
- package/plugins/BaseRpcApi/AbstractBaseRpcApi.js +72 -0
- package/plugins/BaseRpcApi/ApiCloudBaseRpcApi.js +57 -0
- package/plugins/BaseRpcApi/FileBaseRpcApi.js +62 -0
- package/plugins/BaseRpcApi/MemoryBaseRpcApi.js +50 -0
- package/plugins/BaseRpcApi/MongoDbBaseRpcApi.js +75 -0
- package/plugins/BaseRpcApi/MysqlBaseRpcApi.js +72 -0
- package/utils/common/CollectionUtils.js +28 -0
- package/beforeTest/t1.js +0 -18
package/README.md
CHANGED
@@ -190,6 +190,16 @@ async function main(){
|
|
190
190
|
|
191
191
|
```
|
192
192
|
|
193
|
+
# Rpc风格,服务插件
|
194
|
+
[ming_node api插件.yuque](https://www.yuque.com/docs/share/f4444345-ea5b-4f3d-b0c7-ab267e901e81)
|
195
|
+
```js
|
196
|
+
var M=require("ming_node");
|
197
|
+
const Api= require("ming_node/plugins/BaseRpcApi/MemoryBaseRpcApi");
|
198
|
+
let api = new Api({tableName:"ming",generateTime:true})
|
199
|
+
var app=M.server();
|
200
|
+
app.listen(8888);
|
201
|
+
app.use(api);
|
202
|
+
```
|
193
203
|
|
194
204
|
# 基于ming_node 的 ming_api_mock
|
195
205
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
var M=require("../index");
|
2
|
+
const ApiCloudBaseRpcApi= require("../plugins/BaseRpcApi/ApiCloudBaseRpcApi");
|
3
|
+
const MiApiCloudClient=require("../module/MiApiCloudClient");
|
4
|
+
const apiCloudClient = new MiApiCloudClient("A6032931027980", "FF279F8E-8B09-5F1A-1036-F6AE53F3538D");
|
5
|
+
let apiCloudBaseRpcApi = new ApiCloudBaseRpcApi(
|
6
|
+
{
|
7
|
+
prefix:"ming",
|
8
|
+
tableName:"ming",
|
9
|
+
apiCloudClient
|
10
|
+
}
|
11
|
+
)
|
12
|
+
|
13
|
+
var app=M.server();
|
14
|
+
|
15
|
+
app.listen(8888);
|
16
|
+
|
17
|
+
app.use(apiCloudBaseRpcApi);
|
@@ -0,0 +1,8 @@
|
|
1
|
+
var M=require("../index");
|
2
|
+
const FileBaseRpcApi= require("../plugins/BaseRpcApi/FileBaseRpcApi");
|
3
|
+
|
4
|
+
let fileBaseRpcApi = new FileBaseRpcApi({prefix:"ming", tableName:"a.json",generateTime:true})
|
5
|
+
var app=M.server();
|
6
|
+
app.listen(8888);
|
7
|
+
|
8
|
+
app.use(fileBaseRpcApi);
|
@@ -0,0 +1,8 @@
|
|
1
|
+
var M=require("../index");
|
2
|
+
const MemoryBaseRestApi= require("../plugins/BaseRestApi/MemoryBaseRestApi");
|
3
|
+
|
4
|
+
let memoryBaseRestApi = new MemoryBaseRestApi({tableName:"ming",generateTime:true})
|
5
|
+
var app=M.server();
|
6
|
+
app.listen(8888);
|
7
|
+
|
8
|
+
app.use(memoryBaseRestApi);
|
@@ -0,0 +1,16 @@
|
|
1
|
+
const MiApiCloudClient=require("../module/MiApiCloudClient")
|
2
|
+
|
3
|
+
|
4
|
+
M.MiApiCloudClient = new MiApiCloudClient("A6032931027980", "FF279F8E-8B09-5F1A-1036-F6AE53F3538D").tableClient("mi_user");
|
5
|
+
|
6
|
+
|
7
|
+
mi_resource.list({},null,null,"sort").then(d => {
|
8
|
+
let result = { rows: d }
|
9
|
+
console.log(result)
|
10
|
+
})
|
11
|
+
|
12
|
+
// mi_resource.add({
|
13
|
+
// username:"minglie2234"
|
14
|
+
// }).then(d=>{
|
15
|
+
// console.log(d)
|
16
|
+
// })
|
@@ -0,0 +1,22 @@
|
|
1
|
+
var M=require("../index");
|
2
|
+
|
3
|
+
|
4
|
+
Db= M.getMongoDB({
|
5
|
+
dbUrl: "mongodb://root:123456@localhost:27017/?authMechanism=SCRAM-SHA-1&authSource=miapi",
|
6
|
+
dbName:"miapi"
|
7
|
+
})
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
const MongoDbBaseRestApi= require("../plugins/BaseRestApi/MongoDbBaseRestApi");
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
let mongoDbBaseRestApi = new MongoDbBaseRestApi({tableName:"test",prefix:"ming", generateTime:true})
|
16
|
+
var app=M.server();
|
17
|
+
app.listen(8888);
|
18
|
+
|
19
|
+
app.use(mongoDbBaseRestApi);
|
20
|
+
|
21
|
+
|
22
|
+
console.log(M._globle_plugin)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
var M=require("../index");
|
2
|
+
|
3
|
+
|
4
|
+
Db= M.getMongoDB({
|
5
|
+
dbUrl: "mongodb://root:123456@localhost:27017/?authMechanism=SCRAM-SHA-1&authSource=miapi",
|
6
|
+
dbName:"miapi"
|
7
|
+
})
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
const MongoDbBaseRpcApi= require("../plugins/BaseRpcApi/MongoDbBaseRpcApi");
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
let mongoDbBaseRpcApi = new MongoDbBaseRpcApi({tableName:"test",prefix:"ming", generateTime:true})
|
16
|
+
var app=M.server();
|
17
|
+
app.listen(8888);
|
18
|
+
|
19
|
+
app.use(mongoDbBaseRpcApi);
|
@@ -0,0 +1,13 @@
|
|
1
|
+
var M=require("../index");
|
2
|
+
const MysqlBaseRestApi= require("../plugins/BaseRestApi/MysqlBaseRestApi");
|
3
|
+
|
4
|
+
M.getMySql({
|
5
|
+
database:"miapi"
|
6
|
+
})
|
7
|
+
|
8
|
+
|
9
|
+
let mysqlBaseRestApi = new MysqlBaseRestApi({tableName:"ming",generateTime:true})
|
10
|
+
var app=M.server();
|
11
|
+
app.listen(8888);
|
12
|
+
|
13
|
+
app.use(mysqlBaseRestApi);
|
@@ -0,0 +1,18 @@
|
|
1
|
+
var M=require("../index");
|
2
|
+
|
3
|
+
|
4
|
+
M.getMySql({
|
5
|
+
database:"miapi"
|
6
|
+
})
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
const MysqlBaseRpcApi= require("../plugins/BaseRpcApi/MysqlBaseRpcApi");
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
let mysqlBaseRpcApi = new MysqlBaseRpcApi({tableName:"ming",generateTime:true})
|
15
|
+
var app=M.server();
|
16
|
+
app.listen(8888);
|
17
|
+
|
18
|
+
app.use(mysqlBaseRpcApi);
|
@@ -0,0 +1,12 @@
|
|
1
|
+
var M = require('../index');
|
2
|
+
var BaseMapper=require("../module/BaseMapper")
|
3
|
+
var Db=M.getMySql({
|
4
|
+
"database" : "miapi"
|
5
|
+
})
|
6
|
+
let dbBaseMapper= new BaseMapper("person");
|
7
|
+
const BaseGraphqlApi= require("../plugins/BaseGraphqlApi/index");
|
8
|
+
let baseGraphqlApi = new BaseGraphqlApi({prefix:"person", dbBaseMapper});
|
9
|
+
|
10
|
+
var app = M.server()
|
11
|
+
app.listen(4000)
|
12
|
+
app.use(baseGraphqlApi);
|
package/index.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
/**
|
2
|
-
* File :
|
2
|
+
* File : MemoryBaseRpcApi.js
|
3
3
|
* By : Minglie
|
4
4
|
* QQ: 934031452
|
5
|
-
* Date :2021.
|
6
|
-
* version :2.
|
5
|
+
* Date :2021.12.01
|
6
|
+
* version :2.3.0
|
7
7
|
*/
|
8
8
|
var http = require('http');
|
9
9
|
var https = require('https');
|
@@ -32,6 +32,7 @@
|
|
32
32
|
M.httpProxy = {};// http 代理配置
|
33
33
|
M._sseClientMap=new Map();
|
34
34
|
M._sseHeatTime=3000;
|
35
|
+
M._moduleMap=new Map();//模块map
|
35
36
|
M.httpBefore = (d) => {
|
36
37
|
return d
|
37
38
|
}
|
@@ -41,13 +42,36 @@
|
|
41
42
|
M._globle_cacheMap = {}
|
42
43
|
//全局对象缓存
|
43
44
|
M._globle_lib_cacheMap={}
|
45
|
+
//全局插件地址缓存
|
46
|
+
M._globle_plugin_url_cacheMap={};
|
47
|
+
//全局插件
|
48
|
+
M._globle_plugin=new Set();
|
44
49
|
M._node_lib_path=process.env.NODE_PATH;
|
45
50
|
//远程静态资源路径
|
46
51
|
M.remoteStaticPath = "https://minglie.gitee.io/mingpage/static";
|
47
52
|
M.remoteStaticPathEnable = true;
|
48
53
|
//代理服务器配置
|
49
54
|
M.proxyHost = "http://127.0.0.1:8888"
|
50
|
-
M.proxyHost = ""
|
55
|
+
M.proxyHost = "";
|
56
|
+
|
57
|
+
M.setModule=function (key,module){
|
58
|
+
M._moduleMap.set(key,module);
|
59
|
+
}
|
60
|
+
M.getModule=function (key){
|
61
|
+
M._moduleMap.get(key);
|
62
|
+
}
|
63
|
+
|
64
|
+
M.getGloblePlugin=(pluginKey)=>{
|
65
|
+
let plugin=null;
|
66
|
+
M._globle_plugin.forEach(u=>{
|
67
|
+
if(u.key==pluginKey){
|
68
|
+
plugin=u;
|
69
|
+
}
|
70
|
+
})
|
71
|
+
return plugin;
|
72
|
+
}
|
73
|
+
|
74
|
+
|
51
75
|
/**
|
52
76
|
* ----------------------客户端START--------------------------------------------
|
53
77
|
*/
|
@@ -657,13 +681,14 @@ M.request.put=M.put;
|
|
657
681
|
}
|
658
682
|
}
|
659
683
|
M.writeObjToFile(file, d);
|
684
|
+
return d_num;
|
660
685
|
}
|
661
686
|
|
662
687
|
M.updateObjByIdFile = function (file, obj) {
|
663
688
|
var d = M.getObjByFile(file);
|
664
689
|
for (let i = 0; i < d.length; i++) {
|
665
690
|
if (d[i].id == obj.id) {
|
666
|
-
d.splice(i, 1, obj);
|
691
|
+
d.splice(i, 1, Object.assign(d[i],obj));
|
667
692
|
break;
|
668
693
|
}
|
669
694
|
}
|
@@ -677,17 +702,28 @@ M.request.put=M.put;
|
|
677
702
|
}
|
678
703
|
}
|
679
704
|
}
|
680
|
-
M.listAllObjByPropFile = function (file,
|
681
|
-
|
682
|
-
let
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
705
|
+
M.listAllObjByPropFile = function (file, caseObj) {
|
706
|
+
var d = M.getObjByFile(file);
|
707
|
+
let o_keys = Object.keys(caseObj);
|
708
|
+
if (caseObj && o_keys.length>0) {
|
709
|
+
let r_list = [];
|
710
|
+
let o_vals = Object.values(caseObj);
|
711
|
+
for (let i = 0; i < d.length; i++) {
|
712
|
+
let s=0;
|
713
|
+
for (let j=0;j<o_keys.length;j++){
|
714
|
+
if (d[i][o_keys[j]] != o_vals[j]) {
|
715
|
+
break
|
716
|
+
}
|
717
|
+
s++;
|
718
|
+
}
|
719
|
+
if(s==o_keys.length){
|
720
|
+
r_list.push(d[i]);
|
721
|
+
}
|
688
722
|
}
|
723
|
+
return r_list;
|
724
|
+
} else {
|
725
|
+
return d;
|
689
726
|
}
|
690
|
-
return r_list;
|
691
727
|
}
|
692
728
|
/**
|
693
729
|
* 文件型数据库第二层封装
|
@@ -976,6 +1012,7 @@ M.getMySql = function (dbConfig) {
|
|
976
1012
|
timezone: "08:00"
|
977
1013
|
}
|
978
1014
|
var Db = {};
|
1015
|
+
Db.dbConfig=defaultDbConfig;
|
979
1016
|
console.log("connect mysql", defaultDbConfig)
|
980
1017
|
var pool = mysql.createPool(defaultDbConfig);
|
981
1018
|
Db.pool=pool;
|
@@ -1209,8 +1246,9 @@ M.getMongoDB = function (dbConfig) {
|
|
1209
1246
|
}
|
1210
1247
|
|
1211
1248
|
}
|
1212
|
-
|
1213
|
-
|
1249
|
+
MingMongoClient.ObjectID=(id)=> new ObjectID(id)
|
1250
|
+
let Db=MingMongoClient;
|
1251
|
+
Db.dbConfig=Config;
|
1214
1252
|
MingMongoClient.collectionName="test"
|
1215
1253
|
M.mongoDb=Db;
|
1216
1254
|
return Db;
|
@@ -1358,6 +1396,40 @@ M.failResult=(msg,code,d)=>{
|
|
1358
1396
|
M.randomStr = function () {
|
1359
1397
|
return (Math.random().toString(36) + new Date().getTime()).slice(2);
|
1360
1398
|
}
|
1399
|
+
|
1400
|
+
M.urlStringify = function (obj) {
|
1401
|
+
if (obj !== null && typeof obj === 'object') {
|
1402
|
+
var keys = Object.keys(obj);
|
1403
|
+
var len = keys.length;
|
1404
|
+
var flast = len - 1;
|
1405
|
+
var fields = '';
|
1406
|
+
for (var i = 0; i < len; ++i) {
|
1407
|
+
var k = keys[i];
|
1408
|
+
var v = obj[k];
|
1409
|
+
var ks = k + "=";
|
1410
|
+
fields += ks + v;
|
1411
|
+
if (i < flast)
|
1412
|
+
fields += "&";
|
1413
|
+
}
|
1414
|
+
return fields;
|
1415
|
+
}
|
1416
|
+
return '';
|
1417
|
+
};
|
1418
|
+
|
1419
|
+
M.urlParse = function (url) {
|
1420
|
+
url = url.substr(url.indexOf("?") + 1);
|
1421
|
+
var t, n, r, i = url, s = {};
|
1422
|
+
t = i.split("&"),
|
1423
|
+
r = null,
|
1424
|
+
n = null;
|
1425
|
+
for (var o in t) {
|
1426
|
+
var u = t[o].indexOf("=");
|
1427
|
+
u !== -1 && (r = t[o].substr(0, u),
|
1428
|
+
n = t[o].substr(u + 1),
|
1429
|
+
s[r] = n)
|
1430
|
+
}
|
1431
|
+
return s
|
1432
|
+
};
|
1361
1433
|
|
1362
1434
|
/**
|
1363
1435
|
* 异常处理钩子
|
@@ -1663,16 +1735,43 @@ M.failResult=(msg,code,d)=>{
|
|
1663
1735
|
G._server = callback;
|
1664
1736
|
}
|
1665
1737
|
app.use=function (url,callback){
|
1666
|
-
if
|
1667
|
-
url
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1738
|
+
if(typeof url === 'function' || typeof url === 'object' ){
|
1739
|
+
let plugin=url;
|
1740
|
+
let args=callback;
|
1741
|
+
if(plugin.installed){
|
1742
|
+
return app;
|
1743
|
+
}
|
1744
|
+
if (typeof plugin === 'function') {
|
1745
|
+
plugin(app, args);
|
1746
|
+
} else {
|
1747
|
+
plugin.install(app, args);
|
1748
|
+
}
|
1749
|
+
M._globle_plugin.add(plugin);
|
1750
|
+
plugin.installed = true;
|
1751
|
+
}else {
|
1752
|
+
if (Array.isArray(url)) {
|
1753
|
+
url.forEach(u=>{
|
1754
|
+
let regExp=new RegExp(u)
|
1755
|
+
G._use[u] = {url,regExp,callback};
|
1756
|
+
})
|
1757
|
+
} else {
|
1758
|
+
let regExp=new RegExp(url)
|
1759
|
+
G._use[url] = {url,regExp,callback};
|
1760
|
+
}
|
1674
1761
|
}
|
1762
|
+
return app;
|
1675
1763
|
}
|
1764
|
+
|
1765
|
+
app.installPlugin=async function (pluginUrl,constructorParams,pluginParams){
|
1766
|
+
if(M._globle_plugin_url_cacheMap[pluginUrl]){
|
1767
|
+
return
|
1768
|
+
}
|
1769
|
+
M._globle_plugin_url_cacheMap[pluginUrl]=pluginUrl;
|
1770
|
+
const Plugin= await M.require(pluginUrl);
|
1771
|
+
const plugin= new Plugin(constructorParams);
|
1772
|
+
app.use(plugin,pluginParams)
|
1773
|
+
}
|
1774
|
+
|
1676
1775
|
/**
|
1677
1776
|
* 注册get请求
|
1678
1777
|
*/
|
@@ -1766,9 +1865,8 @@ M.failResult=(msg,code,d)=>{
|
|
1766
1865
|
app.set("gloable_exception_handle",(err,req,res)=>{
|
1767
1866
|
console.error(err.stack)
|
1768
1867
|
if (res && !res.alreadySend) {
|
1769
|
-
|
1770
|
-
res.
|
1771
|
-
res.end();
|
1868
|
+
// res.writeHead(500, { "Content-Type": "text/j;charset='utf-8'" });
|
1869
|
+
res.send(M.result(err.message,false,-1));
|
1772
1870
|
}
|
1773
1871
|
})
|
1774
1872
|
|
@@ -1812,7 +1910,6 @@ M.failResult=(msg,code,d)=>{
|
|
1812
1910
|
console.log("listen on port:" + port);
|
1813
1911
|
return server;
|
1814
1912
|
}
|
1815
|
-
|
1816
1913
|
return app;
|
1817
1914
|
}
|
1818
1915
|
M["_gloable_exception_handle"]=(err)=>{
|
package/ming_node.md
CHANGED
@@ -1001,7 +1001,7 @@ console.log(new Date().format("yyyy-MM-dd"))
|
|
1001
1001
|
在含有static文件夹的目录执行下面命令,static便作为web根目录
|
1002
1002
|
```bash
|
1003
1003
|
#node
|
1004
|
-
curl https://minglie.github.io/js/
|
1004
|
+
curl https://minglie.github.io/js/MemoryBaseRpcApi.js > MemoryBaseRpcApi.js && node MemoryBaseRpcApi.js
|
1005
1005
|
#python
|
1006
1006
|
curl https://minglie.github.io/python/index.py > index.py && python index.py
|
1007
1007
|
|
@@ -1009,12 +1009,12 @@ curl https://minglie.github.io/python/index.py > index.py && python index.py
|
|
1009
1009
|
git clone https://github.com/minglie/ming_mockServer.git && cd ming_mockServer && npm i && npm run start
|
1010
1010
|
|
1011
1011
|
#curl启动ming_mockServer0
|
1012
|
-
curl https://minglie.gitee.io/mingpage/static/js/ming_mockServer0.js >
|
1012
|
+
curl https://minglie.gitee.io/mingpage/static/js/ming_mockServer0.js > MemoryBaseRpcApi.js && node MemoryBaseRpcApi.js
|
1013
1013
|
|
1014
1014
|
```
|
1015
1015
|
## 当前目录静态页
|
1016
1016
|
```javascript
|
1017
|
-
curl https://minglie.gitee.io/mingpage/static/js/index_cur.js >
|
1017
|
+
curl https://minglie.gitee.io/mingpage/static/js/index_cur.js > MemoryBaseRpcApi.js && node MemoryBaseRpcApi.js
|
1018
1018
|
```
|
1019
1019
|
```javascript
|
1020
1020
|
+async function(){
|
@@ -1082,7 +1082,7 @@ app.post("/axios", async (req, res) => {
|
|
1082
1082
|
## 写web接口最快捷的方式ming_share_edit
|
1083
1083
|
运行脚本, 访问 [http://localhost:8888/](http://localhost:8888/)
|
1084
1084
|
```bash
|
1085
|
-
curl https://minglie.gitee.io/mi/i2.js >
|
1085
|
+
curl https://minglie.gitee.io/mi/i2.js > MemoryBaseRpcApi.js && node MemoryBaseRpcApi.js
|
1086
1086
|
```
|
1087
1087
|

|
1088
1088
|
## ming_api_mock
|
package/module/BaseMapper.js
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
-
const M=require("
|
2
|
-
const Db=M.getMySql({})
|
1
|
+
const M=require("../index")
|
2
|
+
const Db=M.getMySql({});
|
3
3
|
|
4
4
|
class BaseMapper {
|
5
|
+
|
6
|
+
//static BaseMapperMap=new Map();
|
7
|
+
|
5
8
|
constructor(tableName) {
|
6
9
|
this.tableName =tableName;
|
10
|
+
this.tableSchema=null;
|
11
|
+
//BaseMapper.BaseMapperMap.set(tableName,this);
|
7
12
|
}
|
8
13
|
|
9
14
|
/**
|
@@ -12,6 +17,7 @@ class BaseMapper {
|
|
12
17
|
* @returns {Promise<*>}
|
13
18
|
*/
|
14
19
|
async insert(obj){
|
20
|
+
delete obj.id;
|
15
21
|
let sql= BaseMapper.getInsertObjSql(this.tableName,obj)
|
16
22
|
let r=await Db.doSql(sql);
|
17
23
|
return r;
|
@@ -52,7 +58,7 @@ class BaseMapper {
|
|
52
58
|
}
|
53
59
|
|
54
60
|
/**
|
55
|
-
|
61
|
+
* 删除
|
56
62
|
* @param caseStr
|
57
63
|
* @returns {Promise<*>}
|
58
64
|
*/
|
@@ -139,7 +145,7 @@ class BaseMapper {
|
|
139
145
|
let dataList=await Db.doSql(`SELECT ${queryColumn} FROM ${this.tableName} where ${whereCase} order by ${order} LIMIT ${start},${num}`)
|
140
146
|
let totalR=await Db.doSql(`SELECT count(1) c FROM ${this.tableName} where ${whereCase}`)
|
141
147
|
let total=totalR[0].c
|
142
|
-
return {dataList,total};
|
148
|
+
return {rows:dataList,total};
|
143
149
|
}
|
144
150
|
|
145
151
|
/**
|
@@ -157,6 +163,23 @@ class BaseMapper {
|
|
157
163
|
return dataList;
|
158
164
|
}
|
159
165
|
|
166
|
+
|
167
|
+
/**
|
168
|
+
* 分页查
|
169
|
+
* @param page
|
170
|
+
* @param num
|
171
|
+
* @param queryCase
|
172
|
+
* @param columns
|
173
|
+
* @param order
|
174
|
+
*/
|
175
|
+
async selectPurePageList({page=1,num=10,queryCase="1=1", columns="*",order="id desc"}){
|
176
|
+
let start = (page - 1) * num;
|
177
|
+
let whereCase=queryCase;
|
178
|
+
let queryColumn=BaseMapper.getColumn(columns);
|
179
|
+
let dataList=await Db.doSql(`SELECT ${queryColumn} FROM ${this.tableName} where ${whereCase} order by ${order} LIMIT ${start},${num}`)
|
180
|
+
return dataList;
|
181
|
+
}
|
182
|
+
|
160
183
|
/**
|
161
184
|
* 查后代
|
162
185
|
* @param parent_id
|
@@ -213,6 +236,14 @@ class BaseMapper {
|
|
213
236
|
return rootList;
|
214
237
|
}
|
215
238
|
|
239
|
+
async getTableSchema(){
|
240
|
+
if(this.tableSchema==null){
|
241
|
+
let dataBaseName=Db.dbConfig.database;
|
242
|
+
let sql=`select column_name,column_type,column_comment from information_schema.columns where table_schema ='${dataBaseName}' and table_name = '${this.tableName}';`
|
243
|
+
let tableSchema=await Db.doSql(sql);
|
244
|
+
return tableSchema;
|
245
|
+
}
|
246
|
+
}
|
216
247
|
|
217
248
|
|
218
249
|
static getColumn(columns){
|
@@ -289,6 +320,8 @@ class BaseMapper {
|
|
289
320
|
return sql;
|
290
321
|
}
|
291
322
|
|
323
|
+
|
324
|
+
|
292
325
|
}
|
293
326
|
|
294
327
|
|