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 
     | 
    
         |