微信小程序云开发
无服务端架构,它提供了云函数的能力,可以在小程序端直接调用写好的云函数,同时提供了云数据库和对象存储的能力,程序员不用配置服务器,服务端功能可以在小程序端使用云函数实现
一、云开发初始准备
1.开发工具
官方链接: https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html
2.项目创建
3. 开通云开发服务 ,点击微信开发者工具的“云开发”图标,在插入框里点击“开通”,同意协议后,会插入创建环境的替代。这时会要求您输入环境名称和环境ID,以及当前云开发的基础环境初步
4. 找到云开发的环境ID,点击云开发控制台窗口里的设置图标,在环境变量的标签页中找到环境名称和环境ID。
5. 初始环境搭建
6. 部署并上传云函数
7. 发布云函数
(1)项目创建
项目名称 | XXXXXXX |
---|---|
目录 | 选择需要保存的目录 |
APPID | 需要注册或者使用体验 |
开发模式 | 小程序 |
后端服务 | 小程序.云开发或者不使用云开发 |
注册好自己专属的微信小程序,通过开发>开发管理>开发设置>获取开发ID后,云服务可选择付费和免费开发配置两种。后端服务选择云开发,系统会默认生成一个云开发模板提供给开发者,官网参考https://developers.weixin.qq.com/minigame/dev/wxcloud/guide/functions/getting-started.html
(2)、初始化程序
开发环境ID尽量选择在云开发控制台设置下选择复制,尽量不要自己打,以免遗漏
// app.js
App({
//初始状态环境,启动就执行
onLaunch() {
console.log("小程序开始")
wx.cloud.init({
env:"duck-2go53kyy86f53686",//开发环境ID
traceUser: true,
})
}
})
-
traceUser用法:
- 数据类型 :boolean
- 非必填
- 默认值 :true
- 说明 :是否在将用户访问记录到用户管理中,在控制台中可见
- 关于 初始化程序 语法,参考 官方文件
(3)、数据库集合创建
- 数据集合名称构建
- 数据类型
3.get 获取数据库 .js代码
在Pages文件下建立一个新的文件夹,包含.js、.json、.wxml、wxss,用作数据库文件(可在app.js下一键生成)
//data.js
Page({
onLoad(){
//第一种写法
wx.cloud.database().collection("new")
.get({
//请求成功
success(res){
console.log("请求成功1",res)
},
//失败请求
fail(ga){
console.log("请求失败1",ga)
}
})
//第二种写法
wx.cloud.database().collection("new").get()
.then(res=>{
console.log("请求成功2",res)
})
.catch(ga=>{
console.log("请求失败2",ga)
})
}
})
运行代码,请求成功数据data:Array(0),查询数据为0,原因是开发控制台集合权限没有改,应该在数据权限中把它改为是所有用户可读,仅创建者可读写.
4.数据库查询
#** 例子1**
//data.js
Page({
data:{
list:[]
},
onLoad(){
//固定写法
let that=this//将this赋值给that
wx.cloud.database().collection("new")
.get({
//请求成功
success(res){
console.log("请求成功1",res)
that.setData({
list:res.data
})
},
//失败请求
fail(ga){
console.log("请求失败1",ga)
}
})
}
})
需要注意的是success中this并不是全局变量,需要将其赋值给另一个变量,否则将读取不出数据库
#** 例子2**
//data.js
Page({
data:{
list:[]
},
onLoad(){
wx.cloud.database().collection("new").get()
.then(res=>{
console.log("请求成功2",res)
this.setData({
list:res.data
})
})
.catch(ga=>{
console.log("请求失败2",ga)
})
}
})
//data.wxml
<view wx:for="{{list}}">
<view>获取库集name:{{item.name}},获取库集prick:{{item.prick}}</view>
</view>
数据库脚本语法同 SDK 数据库语法,是 JavaScript 的真子集,出于安全考虑在语法上带有一定的限制性,wx.cloud.database() 的结果 (不区分环境)。
Collection.where(condition: Object)用法:
: 说明 :指定查询条件,返回带新查询条件的新的集合引用
: 非必填
: 返回值 :Collection
//Collection.where(condition: Object)用法
onLoad(){
wx.cloud.database().collection("new")
.where({
name:"课本"//查询条件
})
.get()doC
-
doc用法:
- 说明 :获取集合中指定记录的引用。方法接受一个 id 参数,指定需引用的记录的 _id,查询单条数据
- 非必填
-
返回值 :Document
官方示例代码 :const myTodo = db.collection(‘todos’).doc(‘my-todo-id’)
//doc用法
Page({
data:{
gg:{},
},
onLoad(){
wx.cloud.database().collection("new")
.doc("b00064a76032114a063db5ec057018c4")//id必须填
.get()
.then(res=>{
console.log("请求成功2",res.data)
this.setData({
gg:res.data
})
})
.catch(ga=>{
console.log("请求失败2",ga)
})
}
})
5.数据库添加
新建新页面
//add.js
Page({
onLoad(){
wx.cloud.database().collection("new")
.add({
data:{//按值 字段添加
name:" 慢慢懂",
prick:"5"
}
})
.then(res=>{
console.log("添加成功",res)
})
.catch(res=>{
console.log("添加失败",res)
})
}
})
学而思,思而学