leancloud貌似是中国最早开始做云服务器的,对于开发移动端的人来说终于可以不用苦苦等待服务端的数据
,而作为另外一种选择调试移动端的代码。
我用的是JS的,主要说说JS的一些问题。
1,快速入门:https://leancloud.cn/start.html
2,注意引用此js时,要放到最前面,否则可能不起作用
<script src="https://leancloud.cn/scripts/lib/av-0.5.0.min.js"></script>
3,测试数据正常后,你可以在它的云服务器数据库看到刚上传的数据(在你应用的存储分类里可以看到)
4,保存数据的方法 https://leancloud.cn/docs/js_guide.html#保存对象
var gameScore = new GameScore(); gameScore.set("score", 1337); gameScore.set("playerName", "Sean Plott"); gameScore.set("cheatMode", false); gameScore.save(null, { success: function(gameScore) { // Execute any logic that should take place after the object is saved. alert('New object created with objectId: ' + gameScore.id); }, error: function(gameScore, error) { // Execute any logic that should take place if the save fails. // error is a AV.Error with an error code and description. alert('Failed to create new object, with error code: ' + error.description); } });
还有保存数据的键值不能为id,否则不能保存成功
5,查询数据的方法 https://leancloud.cn/docs/js_guide.html#检索对象
(不知道为什么官方文档比我前几天看又少了好像,只说了查询id的方法,应该还有可以设置查询条件的)
var Requires = AV.Object.extend("Requires"); var updateStatus = function(updateid,groupid){ $ionicLoading.show({ template: 'Loading...' }); var query = new AV.Query(Requires); query.equalTo("requireId", updateid); query.find({ success: function(results) { $ionicLoading.hide(); var object = results[0]; object.set("groupId", groupid); object.save(); $cordovaToast.show('更新需求状态成功', 'long', 'bottom'); }, error: function(error) { $ionicLoading.hide(); alert("Error: " + error.code + " " + error.message); } }); }不设置查询条件query.equalTo的话就会获取到整个表的数据
6,更新数据的方法 https://leancloud.cn/docs/js_guide.html#更新对象
(官方文档太误导人了,写了两次保存,其实应该是查询出对象,更改数据再保存
,不知道怎么想的,这个有点严重,说实话一开始为什么要摆个那样的例子放那呢)
官方示例代码
// Create the object. var gameScore = new GameScore(); gameScore.set("score", 1337); gameScore.set("playerName", "Sean Plott"); gameScore.set("cheatMode", false); gameScore.set("skills", ["pwnage", "flying"]); gameScore.save(null, { success: function(gameScore) { // Now let's update it with some new data. In this case, only cheatMode and score // will get sent to the cloud. playerName hasn't changed. gameScore.set("cheatMode", true); gameScore.set("score", 1338); gameScore.save(); } });
var Requires = AV.Object.extend("Requires"); var require = new Requires(); var query = new AV.Query(Requires); query.equalTo("requireId", parseInt(todoid)); query.find({ success: function(results) { var object = results[0]; object.set("groupId", $scope.task_groupid); object.set("importance", $scope.priority_level); object.set("classname", $scope.classname); object.set("title", $scope.task_title); object.set("detail", $scope.task_detail); object.set("images", $scope.images_list); object.set("record", $scope.recordPath); object.set("donedate", $scope.done_date); object.save(); }, error: function(error) { alert("Error: " + error.code + " " + error.message); } });