$微信小程序开发实践点滴——Bmob常用API的使用
Bmob后端云官网:http://www.bmob.cn/
Bmob后端云微信小程序开发文档:http://docs.bmob.cn/data/wechatApp/b_developdoc/doc/index.html
Bmob是一个很好用的后端云平台,自己在开发小程序的过程中有用到,比较好用,免去了搭建服务器、配置数据库的烦恼,这也符合小程序即用即走的轻量型设计理念。特写一篇文章总结一下常用功能的用法,详细用法可以参看上面的开发文档。
在小程序中使用Bmob后端云的前提是要先接入Bmob,接入方法请参见我的另一篇博文。
添加一行数据到diary表中
下面的代码可以在远程创建一个名为'diary'的数据库表并插入一条数据,该表有两个字段:'title'和'content':
// 创建一个表对象
var Diary = Bmob.Object.extend('diary');
// 创建一个表记录对象
var diary = new Diary();
// 插入字段数据
diary.set('title','hello');
diary.set('content','hello world!');
// 保存数据到远程数据库
diary.save(null,{
success:function(result){
console.log('create success! data id is:' + result,id);
},
error:function(object,error){
console.log('create failed! error code is:' + error.code + ', error message is:' + error.message);
}
});
根据ID查询单条数据
var Diary = Bmob.Object.extend('diary');
// 创建一个查询对象
var query = new Bmob.Query(Diary);
// 要查询的记录的ID
var id = '4ecdf7a';
// 查询
query.get(id,{
success:function(result){
console.log('标题为:' + result.get('title'));
},
error:function(object,error){
console.log('query failed! error code is:' + error.code + ', error message is:' + error.message);
}
});
修改一条数据
var Diary = Bmob.Object.extend('diary');
var query = new Bmob.Query(Diary);
// 要修改的记录的ID
var id = '4ecdf7a';
query.get(id,{
success:function(result){
result.set('title','a new title');
result.set('content','hi,guy!');
// 保存提交修改
result.save();
},
error:function(object,error){
console.log('update failed! error code is:' + error.code + ', error message is:' + error.message);
}
});
删除一条数据
var Diary = Bmob.Object.extend('diary');
var query = new Bmob.Query(Diary);
// 要删除的记录的ID
var id = '4ecdf7a';
query.get(id,{
success:function(object){
object.destroy({
success:function(deleteObject){
console.log('删除成功!');
},
error:function(object,error){
console.log('delete failed! error code is:' + error.code + ', error message is:' + error.message);
}
});
},
error:function(object,error){
console.log('query failed! error code is:' + error.code + ', error message is:' + error.message);
}
});
批量删除
Bmob.Object.destroyAll(objects);
按条件删除
query.destroyAll({
success:function(object){
...
},
error:function(error){
...
}
});
条件查询
var Diary = Bmob.Object.extend('diary');
var query = new Bmob.Query(Diary);
query.equalTo('title','hello');
query.find({
success:funciton(results){
console.log('共查询到' + results.length + '条数据');
for(var i = 0;i < results.length;i++){
var obj = results[i];
console.log(obj.id + ':' + obj.get('title'));
}
},
error:function(error){
console.log('find failed! error code is:' + error.code + ', error message is:' + error.message);
}
})
分页查询
// 设置起始位置
query.skip(10);
// 设置查询个数
query.limit(10);
对查询结果排序
// 对结果按照'title'字段升序排列
query.ascending('title');
// 对结果按照'title'字段降序排列
query.descending('title');
查询某个字段是特定几种取值
query.containedIn('title',['hello','hi','hey']);
查询指定列
query.select('title');
query.find().then(function(results){
...
});
查询字符串字段以某个子串开头
query.startsWith('title','he');
或查询
var q1 = new Bmob.Query(Diary);
q1.greaterThan('age',10);
var q2 = new Bomb.Query(Diary);
q2.lessThan('age',20);
var mainQuery = Bmob.Query.or(q1,q2);
mainQuery.find({
success:function(results){
...
},
error:function(error){
...
}
});
查询满足条件的记录的数量
query.count({
success:function(count){
console.log('共查询到了' + count + '条数据');
},
error:function(error){
...
}
});
Bmob对象的默认属性
obj.id
obj.createdAt
obj.updatedAt
支持的常见数据类型
var num = 42;
var string = 'hello';
var date = new Date();
var array = [string,num];
var object = {number:num,string:string};
var bigObj = new BigObject();
bigObj.set('myNumber',num);
bigObj.set('myString',string);
bigObj.set('myDate',date);
bigObj.set('myArray',array);
bigObj.set('myObject',object);
bigObj.set('myNull',null);
bigObj.save();
随机推荐
- php ajax dom---动态增加
js代码 <script type="text/javascript"> $(document).ready(function(){ $("#talk_sen ...
- java算法-数学之美一
巧用数学的思想来解决程序算法问题,这样的代码如诗般优美.通过数学思想来看问题,也能将程序简单化.“斐波那契数列”对于java程序员来说一定不陌生.当然这个问题的解决方案也有很多.用一个例子说明数学思想 ...
- Revit 2017 编程须要用Visual Studio2015 +.NET Framework 4.52
一年一度的Revit产品公布时刻,我们抢先想各位介绍下Revit 2017的变化和新功能 Major changes and renovations to the Revit API API chan ...
- Extjs5 app.js缓冲设置
在6月2日Extjs5正式版公布后.粗略研究了一下,sencha推荐使用project编译来公布应用.开发过程中用sencha app watch命令就可以生成服务.每建立一个js类,就须要Ctrl+ ...
- java ssh介绍(1)
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- Docker mysql 连接 “The server requested authentication method unknown to the clien”错误
查了下,出现这个错误的原因是从mysql 5.6开始,mysql密码加密算法更改了. 我装的mysql 8.* ,那么有两种解决方法: mysql 版本选择 <= 5.6 修改密码 docker ...
- 一起学android之设置ListView数据显示的动画效果(24)
效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/40 ...
- python uwsgi 部署以及优化
这篇文章其实两个月之前就应该面世了,但是最近琐事.烦心事太多就一直懒得动笔,拖到现在才写 一.uwsgi.wsgi.fastcgi区别和联系 参见之前的文章 http://www.cnblogs.co ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.2——DSL文档
问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的AP ...
- bootstrap 媒体查询
//各类设备的分辨率 /*超小设备(手机,小于768px)*/ /* Bootstrap 中默认情况下没有媒体查询 */ /*超小型设备(小于768px)*/ @media (min-width:@s ...