0.1.319 • Published 3 months ago

emb-api v0.1.319

Weekly downloads
4
License
ISC
Repository
-
Last release
3 months ago

gcl

目录

Install

$ npm install emb-api

码农村 nodejs emb扩展类库

Introduction

emb-api为emb下为其它vesh项目接入emb系统开发的API工具,涉及 EMBDataFactory EMBModule > EMBAutoFactoryDecorator > EMBMySQLConverter

                                    > EMBMsSQLConverter(todo)
                                    > EMBNoSQLConverter(todo)
EMBEventModuler 

config

    index.npcf
    "AppSettings": {
        "embconnect": {
            "host": "https://emb.cv.com",//emb系统域名
            "method": "POST",
            "timeout ": 60000,
            "SystemID":"90e1373f162011e8b40400505635a088",
            "TokenURL":"/api/createToken.single",
            "DoURL":"/api/do.single",
            "expireTime":7
        },
    },
    "Middler": {
        "VESH.view": {
            "com.coooders.Project.VESH.HttpModulers": {
                "mode": "static",
                "params": [
                    ...
                    {
                        /*
                        识别_token参数完成对emb调用_token参数的会话重置,保证emb系统反向调用成功
                        识别_m参数协助EMBAutoFactoryDocator完成 URL=>MySQL,MsSQL,NoSQL功能转换。
                        要求URL必须按照[库|~]/[表|*][/[字段|索引|*]]/[操作|*]定义,并强制要求在Ni文件夹下的npcf配置文件中按照如下格式和顺序进行命令搜索,如无权限限制则不允许调用_m命令
                        * 表结构级别
                        *      库.表.类型.操作
                        *      库.表.类型.*
                        *      库.表.*.操作
                        *      库.*.类型.操作
                        *      库.*.*.操作
                        *      库.*.*.*
                        * 表数据级别
                        *      库.表.操作
                        *      库.表.edit
                        *      库.*.edit
                        *      库.表.nodel
                        *      库.*.nodel
                        *      库.*.操作
                        *      库.表.*
                        *      库.*.*
                        * 库级别
                        *      库.操作
                        *      库.*
                        *      *.操作
                        * 其中库 可以是 ~:当前连接库 或者 库 :Ni中定义许可的命令
                        然后将参数由_m改为_n触发NiModuler调用。
                        */
                        "type": "EMBModuler",
                        "path": "emb-api",
                        "params": [{"ref":"EMB/com.coooders.project.emb.crypt"},{"middler":true},"Ni"]
                    },
                    {
                        "type": "NiModuler",
                        "path": "~V/Control/core-modulers",
                        "params": [
                            [{
                                    "type": "FormFilter"
                                },
                                {
                                    "type": "SessionFilter",
                                    "params": [".User;.PIDS;.EIDS"]
                                }
                            ], {
                                "middler": true
                            }, "Ni"
                        ]
                    },{
                        //识别_e参数并将执行结果merge参数(一般是dbresult的single()结果merge输入参数后按照_e的methodID进行处理。
                        "type": "EMBEventModuler",
                        "path": "emb-api",
                        "params": ["emb"] //emb模板
                    },
                    ...
                ]
        },
        "EMB": {
            "constructorparalength": false,
            "size": 50,
            "app": "33",
            "method": "constructor",
            "mode": "static",
            "path": "emb-api",
            "com.coooders.project.emb.crypt":{"type": "des3xcrypt", "path": "gcl/com/coooders/module/des3xcrypt", "params": ["**********", "******"]},//内部会话保持使用

            "com.coooders.project.emb.crypt2":{"type": "des3xcrypt", "path": "gcl/com/coooders/module/des3xcrypt", "params": ["**********", "******"]}//外部鉴权使用
        },
        "Ni": {
            "embfactory":{
                "type":"EMBDataFactory",//用于调用EMB系统
                "path":"emb-api",
                "params":[{ref:"EMB/com.coooders.project.emb.crypt2"}]
            },
            "embautofactory":{
                "type":"EMBAutoFactoryDecorator",
                "path":"emb-api",
                "params":[
                    {ref:"Ni/mysqlfactory"},//装饰的mysqlfactory
                    {type:"EMBMySQLConverter"}//使用mysql url=>sql翻译器
                ]
            },
            //此时可在Ni框架中调用名为emb的数据模板,根据method参数通过emb系统调用其它系统的服务,命令,事件
            "emb": {
                "type": "NiTemplate",
                "mode": "instance",
                "params": [{
                    "type": "NiStaticDataResource",
                    "params": [{ "ref": "embfactory" }, { "appsetting": "embconnect" }]
                }, { "ref": "cm" }]
            },
            //此时可以在Ni框架中或者通过_m调用w_emb或者通过action内部调用w_emb方式来使用命令行和参数搭配自动生成MySQL了。
            "w_emb":{
                "type": "NiTemplate",
                "mode": "instance",
                "params": [{
                    "type": "NiInstanceDataResource",
                    "params": [{ "ref": "embautofactory" }, { "appsetting": "w_wx_connect" }]
                }, { "ref": "cm" }]
            },
        }
    emb.npcf
    "Module.admin.removeBinding":{
        "params": {
            "method": { "type": "VarChar","value":"aeae3ca17df811e8b09b000c29187cb0" },//触发的服务、命令、事件
            "ids": { "type": "VarChar" },//参数
            "URL": { "type": "VarChar","value":"http://ec.cv.com/api/do.void" }//参数
        }, "template": "emb" },
    "cv_wx.*.*.nodel": {
        "params": {
        "_TestPermission":{"type":"VarChar","value":"WX.数据管理.编辑"} //重点是命令“cv_wx.*.*.nodel” 对应的权限 "WX.数据管理.编辑" 和template "w_emb"
    }, "template": "w_emb" },
    "~.*.*.nodel": {
        "params": {
        "_TestPermission":{"type":"VarChar","value":"WX.数据管理.编辑"} //重点是命令“~.*.*.nodel” 对应的权限 "WX.数据管理.编辑" 和template "w_emb"
    }, "template": "w_emb" },

EMBModule+EMBAutoFactoryDecorator+EMBMySQLConverter 库.表.类型.操作 URL和命令对应的SQL关系定义

库.表.类型.操作 是对表结构进行操作的处理 其在_m方式调用时需要搜索4级操作的命令定义以确认权限,如果是代码方式调用则不需要

  • 库 使用 库名或者~表示当前库
  • 表 使用 为要操作的表名
  • 类型 使用 column 或者 index
  • 操作 使用 add/drop
  • 当其通过_m方式调用时会按照如下顺序在Ni文件夹内文件寻找命令 并根据命令定义验证 权限和template数据模板
  • 库.表.类型.操作
  • 库.表.类型.*
  • 库.表.*.操作
  • 库.*.类型.操作
  • 库...操作
  • 库...* 其URL和命令对应关系是
    '/库/表/类型/操作.json/tjson/jsonp/tjsonp?_m=MT' => 库.表.类型.操作 => SQL => json/tjson/jsonp/tjsonp
    当操作为add 类型为 column时 post的参数 需要是 字段名:字段类型 譬如 ID:VarChar(32),Name:NVarchar(255)。将分别建立字段
    当操作为add 类型为 Index时 post的参数 需要是字段名:ASC|DESC 譬如 ID:ASC,Name:Desc.将根据2个字段建一个联合索引,同时支持参数中有_unique:*出现 说明该索引为唯一索引。
    当操作为drop 类型为 column时 post的参数 需要是 字段名:* 譬如 ID:'',Name:123。将分别删除字段
    当操作为drop 类型为 Index时 post的参数 需要是字段名:* 譬如 ID:'',Name:123.将根据2个字段删除一个联合索引
    当操作为change 类型为 column时 post的参数 需要是 字段名:字段类型 譬如 ID:VarChar(32),Name:NVarchar(255)。将分别修改字段
    当操作为change 类型为 Index时 post的参数 需要是字段名:ASC|DESC 譬如 ID:ASC,Name:Desc.将根据2个字段重建一个联合索引,同时支持参数中有_unique:*出现 说明该索引为唯一索引。
    

库.表.操作 是对表及其数据进行操作的处理 其在_m方式调用时需要搜索3级操作的命令定义以确认权限,如果是代码方式调用则不需要

库      使用 库名或者~表示当前库 
表      使用 为要操作的表名
操作    使用 create/drop/truncate/add/update/select/del/count/sum
当其通过_m方式调用时会按照如下顺序在Ni文件夹内文件寻找命令 并根据命令定义验证 权限和template数据模板
  库.表.操作
  库.表.edit
  库.*.edit
  库.表.nodel
  库.*.nodel
  库.*.操作
  库.表.*
  库.*.*
其URL和命令对应关系是
    '/库/表/操作.json/tjson/jsonp/tjsonp?_m=MT' => 库.表.操作 => SQL => json/tjson/jsonp/tjsonp
    因为删除数据的极端严肃性 所以设计 库.[表|*].* 操作不包括 drop/del/truncate等操作的授权。所以权限组如下
    库.[表|*].* => create/add/update/select/count/sum
    库.[表|*].nodel => create/add/update
    库.[表|*].edit => create/add/update/drop/truncate/del
    库.[表|*].[create|drop|truncate|add|update|select|del|count|sum] => create|drop|truncate|add|update|select|del|count|sum
    当操作为create时 post的参数 需要是
        字段名:字段类型 譬如 ID:VarChar(32),Name:NVarchar(255)。将分别对应建立字段。
        _ID:字段名[+字段名] 譬如ID[,+]Name进行主键创建
        _Index:字段名+字段名,字段名+字段名 譬如ID,ID+Name进行索引创建
    当操作为drop时 不需要post参数 将根据表名删除表
    当操作为add时 post参数 按照字段名:值的方式进行创建,不填写字段名则将填写默认值。其中值允许为系统参数。
    当操作为update时 post参数 按照字段名:值的方式进行设置,按照$[?]字段名:值的方式进行条件设置,其中值允许为系统参数或者计算符。也允许为_increase/_decrease,但是当值为 单双引号开头时 按照字符串处理。否则如果值中含有 (+-*/``号时都按照公式方式处理
    当操作为del时 post参数 按照$[?]字段名:值的方式进行条件设置,其中值允许为系统参数或者计算符。
    当操作为select时 post参数 
        按照字段名:* 的方式进行查询字段设置 如果没有就显示*,
        按照字段名:[?参数名] 的方式进行查询字段设置 如果没有就显示*,
        按照$[?]字段名:值的方式进行条件设置,其中值允许为系统参数或者计算符。
        按照_order:字段名 asc,字段名 desc方式进行设置,其中值允许为系统参数 其与_group互斥
        按照_group:字段名,字段名 进行设置。其中值允许为系统参数 其与_order互斥
        按照_page:数字[,数字] 方式进行设置。其中值允许为系统参数
        按照_distinct:非0 方式进行设置。
        按照_count:非0 方式进行设置。将在结果返回全部符合条件的总数
        按照_columns:a,b 方式进行设置。将在结果集中按照a:true,b:true方式进行显示

    当操作为sum时 post参数 
        按照字段名:* 的方式进行查询字段设置 如果没有就显示*,只允许有1个.
        按照$[?]字段名:值的方式进行条件设置,其中值允许为系统参数或者计算符。
        按照_order:字段名 asc,字段名 desc方式进行设置,其中值允许为系统参数 其与_group互斥
        按照_group:字段名,字段名 进行设置。其中值允许为系统参数 其与_order互斥
        按照_page:数字[,数字] 方式进行设置。其中值允许为系统参数
        按照_distinct:非0 方式进行设置。

    当操作为count时 post参数 
        按照字段名:* 的方式进行查询字段设置 如果没有就显示*,只允许有1个.
        按照$[?]字段名:值的方式进行条件设置,其中值允许为系统参数或者计算符。
        按照_order:字段名 asc,字段名 desc方式进行设置,其中值允许为系统参数 其与_group互斥
        按照_group:字段名,字段名 进行设置。其中值允许为系统参数 其与_order互斥
        按照_page:数字[,数字] 方式进行设置。其中值允许为系统参数
        按照_distinct:非0 方式进行设置。
    
    值可以使用的系统参数有 
        ?_GUID 自动生成的GUID,
        ?_User_UID 会话用户ID,
        ?_User_OrgID 会话企业ID,
        ?_User_* User会话的其它属性
        ?_EIDS_Values 当前会话的角色串
        ?_PIDS_Values 当前会话的权限串
        ?传入值
        系统函数
    值可以使用的计算符号有,其中参数可以为?开头的系统参数;值可以为 ?开头的系统参数也可以为真实值
        <   $参数<值
        >   $参数>值
        <=  $参数<=值
        >=  $参数>=值
        =   $参数=值
        !=  $参数!=值
        @   $参数 between 值1 and 值2 (值按照|号分割值1 值2)
        !@  $参数 not between 值1 and 值2 (值按照|号分割值1 值2)
        ~=  $参数~=值   代表 列 in (值)
        !~=  $参数!~=值 代表 列 not in (值)
        @=  $参数@=值   代表 find_in_set(列,值)>0
        !@=  $参数!@=值 代表 not find_in_set(列,值)>0
        %=  $参数%=值   代表 列 like concat(%,值,%)
        !%=  $参数!%=值 代表 列 not like concat(%,值,%)
        (   $参数 值 代表 值
        &amp;&amp;  &amp;&amp;:[{},{}]  值为JSON格式或者JSON数组格式 递归如上规则完成 ( and )操作 且 数组内为and
        ||  ||:[{},{}]   值为JSON格式或者JSON数组格式 递归如上规则完成 ( or )操作 且 数组内为or
        +  [{},{}] 用在表+ >+ <+ ,格式转换为 on 格式 在 + 的对象数组中分别对应表的第一次连接,第二次连接,以此类推
    表名 可以使用(+ 表示为 inner join >+表示left join <+表示 right join ,表示为, | 表示为 union &amp; 表示为union All)进行表连接操作,且按照表名顺序自动设置缩写为a,b,c,e……z,目前仅支持select,update,del,sum,count使用。
        且后续$条件或者+中必须自动带有a,b,c,d等缩写。
        del必须说明删除的表,例如a:true。
        update必须使用,分隔多个表。
        npcf文件中需要单独设置多表联合对应的Command 判断固定参数和权限

库.操作 是对库进行操作的处理 其在_m方式调用时需要搜索2级操作的命令定义以确认权限,如果是代码方式调用则不需要

库      使用 库名或者~表示当前库 
操作    使用 add/drop
当其通过_m方式调用时会按照如下顺序在Ni文件夹内文件寻找命令 并根据命令定义验证 权限和template数据模板
    库.操作
    库.*
    *.操作
其URL和命令对应关系是
    '/库/操作.json/tjson/jsonp/tjsonp?_m=MT' => 库.操作 => SQL => json/tjson/jsonp/tjsonp
    当操作为add时 post的参数 都不需要将根据库名建一个数据库 默认UTF-8
    当操作为drop时 post的参数 都不需要将根据库名删除一个数据库

Todo

  • EMBNoSQLConverter(todo)
  • EMBAction(todo) 用于接受EMB请求进行鉴权,心跳验证,会话创建等工作。
0.1.319

3 months ago

0.1.316

10 months ago

0.1.317

10 months ago

0.1.312

10 months ago

0.1.311

10 months ago

0.1.313

10 months ago

0.1.309

1 year ago

0.1.308

1 year ago

0.1.310

1 year ago

0.1.305

1 year ago

0.1.304

1 year ago

0.1.306

1 year ago

0.1.301

1 year ago

0.1.300

1 year ago

0.1.303

1 year ago

0.1.302

1 year ago

0.1.296

1 year ago

0.1.299

1 year ago

0.1.298

1 year ago

0.1.289

1 year ago

0.1.288

2 years ago

0.1.291

1 year ago

0.1.293

1 year ago

0.1.295

1 year ago

0.1.294

1 year ago

0.1.286

2 years ago

0.1.287

2 years ago

0.1.279

2 years ago

0.1.278

2 years ago

0.1.277

2 years ago

0.1.276

2 years ago

0.1.280

2 years ago

0.1.285

2 years ago

0.1.282

2 years ago

0.1.281

2 years ago

0.1.284

2 years ago

0.1.283

2 years ago

0.1.275

2 years ago

0.1.274

3 years ago

0.1.271

3 years ago

0.1.273

3 years ago

0.1.272

3 years ago

0.1.270

3 years ago

0.1.269

3 years ago

0.1.268

4 years ago

0.1.267

4 years ago

0.1.266

4 years ago

0.1.265

4 years ago

0.1.264

4 years ago

0.1.263

4 years ago

0.1.262

4 years ago

0.1.261

4 years ago

0.1.260

4 years ago

0.1.259

4 years ago

0.1.257

4 years ago

0.1.258

4 years ago

0.1.256

4 years ago

0.1.253

4 years ago

0.1.255

4 years ago

0.1.254

4 years ago

0.1.252

4 years ago

0.1.251

4 years ago

0.1.250

4 years ago

0.1.249

4 years ago

0.1.248

4 years ago

0.1.247

4 years ago

0.1.246

4 years ago

0.1.245

4 years ago

0.1.244

4 years ago

0.1.243

4 years ago

0.1.242

4 years ago

0.1.241

4 years ago

0.1.240

4 years ago

0.1.239

4 years ago

0.1.238

4 years ago

0.1.237

4 years ago

0.1.236

5 years ago

0.1.235

5 years ago

0.1.234

5 years ago

0.1.232

5 years ago

0.1.231

5 years ago

0.1.230

5 years ago

0.1.229

5 years ago

0.1.228

5 years ago

0.1.227

5 years ago

0.1.226

5 years ago

0.1.225

5 years ago

0.1.224

5 years ago

0.1.223

5 years ago

0.1.222

5 years ago

0.1.221

5 years ago

0.1.220

5 years ago

0.1.219

5 years ago

0.1.218

5 years ago

0.1.217

5 years ago

0.1.216

5 years ago

0.1.215

5 years ago

0.1.214

5 years ago

0.1.213

5 years ago

0.1.212

5 years ago

0.1.211

5 years ago

0.1.210

5 years ago

0.1.209

5 years ago

0.1.208

5 years ago

0.1.207

5 years ago

0.1.206

5 years ago

0.1.205

5 years ago

0.1.204

5 years ago

0.1.203

5 years ago

0.1.202

5 years ago

0.1.201

5 years ago

0.1.200

5 years ago

0.1.199

5 years ago

0.1.198

5 years ago

0.1.197

5 years ago

0.1.196

5 years ago

0.1.195

5 years ago

0.1.194

5 years ago

0.1.193

5 years ago

0.1.192

5 years ago

0.1.191

5 years ago

0.1.190

5 years ago

0.1.189

5 years ago

0.1.188

5 years ago

0.1.187

5 years ago

0.1.186

5 years ago

0.1.185

5 years ago

0.1.184

5 years ago

0.1.183

5 years ago

0.1.181

5 years ago

0.1.180

5 years ago

0.1.179

5 years ago

0.1.178

5 years ago

0.1.177

5 years ago

0.1.176

5 years ago

0.1.175

5 years ago

0.1.174

5 years ago

0.1.173

5 years ago

0.1.172

5 years ago

0.1.171

5 years ago

0.1.170

5 years ago

0.1.169

5 years ago

0.1.168

5 years ago

0.1.167

5 years ago

0.1.166

5 years ago

0.1.165

5 years ago

0.1.164

5 years ago

0.1.163

5 years ago

0.1.162

5 years ago

0.1.161

5 years ago

0.1.160

5 years ago

0.1.159

5 years ago

0.1.158

5 years ago

0.1.157

5 years ago

0.1.156

5 years ago

0.1.155

5 years ago

0.1.154

5 years ago

0.1.153

5 years ago

0.1.152

5 years ago

0.1.151

6 years ago

0.1.150

6 years ago

0.1.149

6 years ago

0.1.148

6 years ago

0.1.147

6 years ago

0.1.146

6 years ago

0.1.145

6 years ago

0.1.144

6 years ago

0.1.143

6 years ago

0.1.142

6 years ago

0.1.141

6 years ago

0.1.140

6 years ago

0.1.139

6 years ago

0.1.138

6 years ago

0.1.137

6 years ago

0.1.136

6 years ago

0.1.135

6 years ago

0.1.134

6 years ago

0.1.133

6 years ago

0.1.132

6 years ago

0.1.131

6 years ago

0.1.130

6 years ago

0.1.129

6 years ago

0.1.128

6 years ago

0.1.127

6 years ago

0.1.126

6 years ago

0.1.125

6 years ago

0.1.124

6 years ago

0.1.123

6 years ago

0.1.122

6 years ago

0.1.121

6 years ago

0.1.120

6 years ago

0.1.119

6 years ago

0.1.118

6 years ago

0.1.117

6 years ago

0.1.116

6 years ago

0.1.115

6 years ago

0.1.114

6 years ago

0.1.113

6 years ago

0.1.112

6 years ago

0.1.111

6 years ago

0.1.110

6 years ago

0.1.109

6 years ago

0.1.108

6 years ago

0.1.107

6 years ago

0.1.106

6 years ago

0.1.105

6 years ago

0.1.104

6 years ago

0.1.103

6 years ago

0.1.102

6 years ago

0.1.101

6 years ago

0.1.100

6 years ago

0.1.99

6 years ago

0.1.98

6 years ago

0.1.97

6 years ago

0.1.96

6 years ago

0.1.95

6 years ago

0.1.94

6 years ago

0.1.93

6 years ago

0.1.92

6 years ago

0.1.91

6 years ago

0.1.90

6 years ago

0.1.89

6 years ago

0.1.88

6 years ago

0.1.87

6 years ago

0.1.86

6 years ago

0.1.85

6 years ago

0.1.84

6 years ago

0.1.83

6 years ago

0.1.82

6 years ago

0.1.81

6 years ago

0.1.80

6 years ago

0.1.79

6 years ago

0.1.78

6 years ago

0.1.77

6 years ago

0.1.76

6 years ago

0.1.75

6 years ago

0.1.74

6 years ago

0.1.73

6 years ago

0.1.72

6 years ago

0.1.71

6 years ago

0.1.70

6 years ago

0.1.69

6 years ago

0.1.68

6 years ago

0.1.67

6 years ago

0.1.66

6 years ago

0.1.65

6 years ago

0.1.64

6 years ago

0.1.63

6 years ago

0.1.62

6 years ago

0.1.61

6 years ago

0.1.60

6 years ago

0.1.59

6 years ago

0.1.58

6 years ago

0.1.57

6 years ago

0.1.56

6 years ago

0.1.55

6 years ago

0.1.53

6 years ago

0.1.52

6 years ago

0.1.51

6 years ago

0.1.50

6 years ago

0.1.49

6 years ago

0.1.48

6 years ago

0.1.47

6 years ago

0.1.46

6 years ago

0.1.45

6 years ago

0.1.44

6 years ago

0.1.43

6 years ago

0.1.42

6 years ago

0.1.41

6 years ago

0.1.40

6 years ago

0.1.39

6 years ago

0.1.38

6 years ago

0.1.37

6 years ago

0.1.36

6 years ago

0.1.35

6 years ago

0.1.34

6 years ago

0.1.33

6 years ago

0.1.32

6 years ago

0.1.31

6 years ago

0.1.30

6 years ago

0.1.29

6 years ago

0.1.28

6 years ago

0.1.27

6 years ago

0.1.26

6 years ago

0.1.25

6 years ago

0.1.24

6 years ago

0.1.23

6 years ago

0.1.22

6 years ago

0.1.21

6 years ago

0.1.20

6 years ago

0.1.19

6 years ago

0.1.18

6 years ago

0.1.17

6 years ago

0.1.16

6 years ago

0.1.15

6 years ago

0.1.14

6 years ago

0.1.13

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago