微信小程序开发,接入Bmob云数据库(一):https://blog.csdn.net/jky_yihuangxing/article/details/141819253
1. 在小程序中初始化Bmob SDK
- 下载Bmob小程序SDK
https://gitee.com/bmober/hydrogen-js-sdk/tree/master/dist
点击右上角【克隆/下载】,此时会弹出下载框,右上角 选择【下载ZIP】压缩包下载解压找到最新版版本即可
- 将sdk放在utils目录下(默认没有utils文件夹),如果没有的话,直接新建文件夹,取名叫utils即可。跟
pages
目录平级
3. 初始化SDK
打开根目录下app.js我文件,在最顶端添加如下代码:
const Bmob = require('./utils/Bmob-2.5.30.min.js')
Bmob.initialize("你的Secret Key", "你的API 安全码");
wx.Bmob = Bmob;
其中,请替换Secret Key和API安全码。选择申请的应用,右侧【应用key】即可查看应用的相关信息
安全码一定要设置
,要求16位数即可
最后设置了安全码,别忘记了点【保存】按钮
最后设置了安全码,别忘记了点【保存】按钮
最后设置了安全码,别忘记了点【保存】按钮
温馨提示:
注意require ('xxx/xxx/xxx')
引用
./
表示相对于当前文件的目录../
表示相对于当前文件的父级目录
到这里就已经完成了对SDK的初始化
2. 数据库建表
- 在后台建表
选择对应的应用,点击右侧【云数据库】,系统默认会有一张_User
表
- 点击【添加表】 取名叫
Product
商品表,然后点击【确定】
- 此时会多了一张
Product
商品表,我们可以先添加列,再添加行
通过上面添加列的操作,Product
表中多了两个字段,分别是productNmae
和productPrice
,到这里已经简单创建了一张商品表,接下来就是如何实现商品的增,删,改,查,请接着往下看
3. 增,删,改,查
新增:
请求示例:
const query = Bmob.Query('tableName');
query.set("name","Bmob")
query.set("cover","后端云")
query.save().then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
返回示例:
{
createdAt: "YYYY-mm-dd HH:ii:ss",
objectId: "objectId"
}
- 具体使用
const query = wx.Bmob.Query('Product');
query.set("productNmae", "测试商品")
query.set("productPrice", 100)
query.save().then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
注意事项:
所有的方法调用前都要加上wx.Bmob.xxx
,因为在初始话SDK的时候有设置wx.Bmob = Bmob;
- 此时点击新增会报错,报错信息如下图所示
Mon Sep 02 2024 17:33:20 GMT+0800 (中国标准时间) request 合法域名校验出错
如若已在管理后台更新域名配置,请刷新项目配置后重新编译项目,操作路径:“详情-域名信息”
https://api.bmobcloud.com 不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html(env: Windows,mp,1.06.2407110; lib: 2.26.2)
解决办法
:忽略https校验即可,设置如下图所示
- 设置之后再点击新增,控制会出现如下图所示日志,表明新增成功,然后去后台刷新,就可以看到新增的数据啦~~
修改
请求示例:
const query = Bmob.Query('tableName');
query.set('id', 'objectId') //需要修改的objectId
query.set('nickName', 'Bmob后端云')
query.save().then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
返回示例:
{
"updatedAt": "YYYY-mm-dd HH:ii:ss"
}
- 具体使用
const query = wx.Bmob.Query('Product');
query.set('id', 'b8991ff8d5') //需要修改的objectId,请在后台表中查看
query.set('productNmae', '修改测试商品')
query.set('productPrice', 200)
query.save().then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
注意事项:
所有的方法调用前都要加上wx.Bmob.xxx
,因为在初始话SDK的时候有设置wx.Bmob = Bmob;
- 去后台刷新数据看看,此时数据已经改变
查询
查所有或查某一条数据,这里演示查所有,详情请看官网教程
请求示例:
const query = Bmob.Query("tableName");
query.find().then(res => {
console.log(res)
});
- 具体使用
const query = wx.Bmob.Query("Product");
query.find().then(res => {
console.log(res)
});
注意事项:
所有的方法调用前都要加上wx.Bmob.xxx
,因为在初始话SDK的时候有设置wx.Bmob = Bmob;
删除
请求示例:
const query = Bmob.Query('tableName');
query.destroy('objectId').then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
返回示例:
{
msg: "ok"
}
- 具体使用
const query = wx.Bmob.Query('Product');
query.destroy('b8991ff8d5').then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
注意事项:
所有的方法调用前都要加上wx.Bmob.xxx
,因为在初始话SDK的时候有设置wx.Bmob = Bmob;
4. API 安全码问题
当应用不设置安全码的时候,调用增,删,改,查API时,会报一个错误,具体信息如下
{code: 400, error: “用户设置的safeToken为空”}
解决方法
:一定要设置16位API安全码,最后一定要点击【 保存
】按钮