• 关于批量更新与删除


    关于批量更新与删除,到贴吧搜了之前的帖子,官方版主明确表示了不支持条件查询与更新(不信邪的试了一下,果然不行)
            client.batch([{
                "method": "PUT",
                "path": "/mcm/api/system_article?filter={'where':{id:'5c486f7e6dbcbe324e3b8c38'}}",
                "body": {
                    "title": "apicloud"
                }
            }], function(ret, err) {
                if (err) {alert(JSON.stringify(err));
                    //处理错误 err
                } else {alert(JSON.stringify(ret));
                    //处理数据 ret
                }
            })
    嘿嘿,确实不行,目前只能根据id更新,那么在批量更新之前我们就试着在批量更新或者删除之前查一下ID吧,虽然可能会有些不开心~那么说一下,如何使用batch(在此,我相亲之前肯定有同学实现了,也学会了,但是为什么就不能发一下帖子呢,让我们这些刚接触的小白们学习学习)

    关于之前帖子里提到的只能使用jquery 实现,我想说,当然不是,jquery也只是把ajax封装,api.ajax也是封装,js-sdk,mcm 都是,我相信其他的也是可以的,我这边用的js-sdk,说为什么,因为js-sdk用着比较爽,怎么爽的,看下官网的文档对比一下(数据云API  github 地址),或者在API调试的地方看下最下面提供的访问方式(当然是用mcm模块也挺好的,但是一些模版性的代码会比较烦,要创建query,要使用whereEqual方法,要记录qid查询什么什么的,如果你不再进行一次简单的封装,会发现你的html里充满了这些代码)

    说回正题,js-sdk 实现方式
    首先我们知道APICLOUD 提供的是Restful API,其中 POST 方法添加数据,PUT 方法更新和添加数据,DELETE 删除数据(POST方法官网已提供)

    那更新的话我们就用PUT,删除就用DELETE 就好。
    然后看官方提供的batch方法(一下是js-sdk中提到的)

    .batch(requests,callback(ret,err))
    (method为POST、PUT的时候需要在body内传值,为GET的时候不需要传递bodypath路径为相对路径)

    从上面这句话我们知道了,在使用batch 的时候需要的参数为requests 请求(多个request请求),在添加和更新表中数据的时候把method改为POST,PUT就OK了(删除就用DELETE)
    那么更新和删除需要上传ID,ID怎么写,很简单我们看一下API调试和文档会发现,官网提供的查询的REST API 为标准的

    /mcm/api/CLASSNAME/ID ,SO,我们只需要把method更改下就OK,像是这样:

    批量更新
            client.batch([{
                "method": "PUT",
                "path": "/mcm/api/CLASSNAME/ID",
                "body": {
                    "title": "apicloud"
                 }
            },......], function(ret, err) {
                if (err) {alert(JSON.stringify(err));
                    //处理错误 err
                } else {alert(JSON.stringify(ret));
                    //处理数据 ret
                }
            })

    批量删除的话把method 里的PUT 改为DELETE 就OK了。
    还有点,我们其实也可以不在body里加参数,直接丢到path里也可以的,但是要把对象转为字符串,但是这里不建议这样干。
    有兴趣的同学可以看下js-sdk的源码关于batch,里面写的很清楚哦~

    成灰之前,抓紧时间做点事!!
  • 相关阅读:
    [Android开发]cocos2dx工程中接入支付宝sdk
    cocos2dx android SDK接入总结
    Cocos2d-vs避免过长编译的小技巧
    math.h里的数学计算公式介绍
    Cocos Code IDE入门指南
    kbengine引擎的安装
    游戏服务端pomelo完整安装配置过程
    cocos2d-x 两个场景间进行传参数
    cocos2d-x 设置全局可变变量
    如何将cocos2d-x项目打包成一个.exe
  • 原文地址:https://www.cnblogs.com/jony-it/p/10315446.html
Copyright © 2020-2023  润新知