引用驱动开发

引用驱动的一个最重要功能就是把一些可以公用的业务方法封装到一个单独的驱动Processor中,以便可以实现代码的重用;另外一个作用就是可以针对每一个单独的模块,实现一个引用驱动,专门用于数据库底层的操作,包括数据库的增删改查,方法内部调用越诚云数据库API接口,这样可以实现数据库操作的易扩展性。

添加测试被引用驱动

创建一个普通驱动【驱动管理】--【新增驱动】,具体创建过程可以参考驱动开发部分,配置如下

引用驱动的具体代码如下:
function testimport(){
   //查找用户列表
   this.finduser = function (tableName) {
       return _db.findData(tableName,-1,20);;
   };
   //根据id更新用户
   this.saveUserById = function (tableName,id,cols,vals) {
      return _db.updateDataById(tableName, id, cols, vals);
   }
   //新建用户
   this.saveUser = function (tableName,cols,vals) {
      return _db.updateData(tableName, cols, vals);
   }
}
function run(){
  return new testimport();
}
run();

创建一个测试驱动

创建一个普通驱动【驱动管理】--【新增驱动】,具体创建过程可以参考驱动开发部分
首先,点击引用驱动--【添加】,弹出引用驱动选择页面,选择刚才添加的驱动importProcessor,如下

确定后,就可以成功添加引用驱动,该测试驱动的最终配置如下所示:

测试驱动的具体代码如下:
var tableName = "user";
function run(){
    var dataMap = _webTools.jsonStringToMap("{}");
    //数组参数传值
    var cols = _collectionTools.getStringArray("number", "name", "password", "isSuper");
    var vals = _collectionTools.getStringArray("cloud", "cloud", "123456", "true");
   //保存,自动分配id,使用引用驱动的key.func() 来引用驱动方法
   importestProcessor.saveUser(tableName,cols,vals);
   //根据id更新,指定id
   importestProcessor.saveUserById(tableName,"cloudId",cols,vals);
    //查询
    var user = importestProcessor.finduser("user");
    dataMap.put("user",user);
    return _webTools.getJsonMessage(true, null, dataMap, null, null);
}
run();

配置测试服务

点击【服务管理】--【添加服务】,服务的具体配置如下所示

服务名称: cloudTestService
服务地址:/cloudTest
返回数据类型:json
驱动:添加引用驱动cloudTestProcessor
其他的选项均默认即可

以上配置完成后就可以通过domain/cloudTest 来访问该测试驱动,并可以看到成功保存的数据和查询的结果。返回数据如下

{
    "code": "",
    "data": {
        "user": [
            {
                "number": "cloud",
                "password": "123456",
                "name": "cloud",
                "isSuper": "true",
                "id": "9223370578821817832e992810edabc4f8caf0d6076e60a1bdd"
            },
            {
                "number": "cloud",
                "password": "123456",
                "name": "cloud",
                "isSuper": "true",
                "id": "cloudId"
            }
        ]
    },
    "exception": "",
    "message": "",
    "result": 1,
    "success": true
}

数组参数的传值问题

在使用越诚云开发,引用驱动传递参数时,需要使用越诚云api工具类
_collectionTools.getStringArray(String... strings) _collectionTools.getObjectArray(Object... objects) 两种方式来创建一个数组,并调用引用驱动方法传递数组参数。如果不使用引用驱动,就可以直接使用javascript内置的Array来创建一个数组进行参数的传递,示例如下:

var array1 = _collectionTools.getStringArray("number", "name", "password", "isSuper");
var array2 = new Array("number", "name", "password", "isSuper");