云开发
完全是后端的知识体系
方便开发者完成整个小程序的开发。动态网站、动态的小程序(那么必然得有后端的支持)
尽可能的弱化够短,微信团队早就出一个公共的云开发能力(后端能力)【虚拟公共池】
操作数据库、文件管理、云函数
一些概念,基本操作、数据库操作、文件管理、云函数操作
1.云开发知识
1.云开发介绍
开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。
云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。
2.学习云开发的目的和好处
对于个人而言,你想上线一个动态的小程序项目,一分钱都不用花,即可上线(相对购买服务器、域名)
对于小公司,使用免费的云服务来进行上线动态项目
大部分公司都有自己的服务器和接口
京东商城小程序,数据放到自己的服务器上,而且接口是自己写的
一套接口,多端使用
3.开通云开发功能
目录基本介绍
project.config.json工具配置文件
Miniprogram:存放小程序的前台页面
Cloudfunctions:存放云函数的目录
(1)先建立一个云开发模板项目
(2)点击云开发按钮
环境:独立的空间,每一个开发者都可以免费使用2个环境
配额:配置,微信也提供收费的配额,只不过空间大了,操作是一样的
4.控制台基本介绍
设置中添加新环境
小程序云项目初始化
开通了云开发功能,在小程序全局下有一个wx.cloud对象
在整个小程序声明周期内,只需要现实的初始化一次
Wx.cloud.init()此方法进行初始化
指定环境。
app.js的onLaunch回调函数中初始化
5.数据库操作
(1)控制台操作数据库
①建立集合
②插入记录
(2)使用api操作数据库
使用api在前台实现数据的增删改查
API风格
云开发的api提供了promise和success then方式
更建议大家使用promise
增加
add(){
// 添加记录
// 1.选择集合(表)回调风格
db.collection('students').add({
data:{//添加色一条记录
name:'赵四',
job:'舞王'
},
success(res){
console.log(res,'add')
}
})
},
promise风格
1.
add(){
db.collection('students').add({
data:{//添加色一条记录
name:'谢广坤',
job:'吐槽'
}
}).then(res=>{
console.log(res,'promise')
})
},
2.
async add(){
let addInfo = await db.collection('students').add({
data:{//添加色一条记录
name:'刘能',
job:'吃猪蹄'
}
})
console.log(addInfo,'promise')
},
查
// 1.根据id查询一条数据
get(){
// 2dddb6b55f0e761a003fc3c31129269c
// doc必须传id,返回对象,查询一条数据
// get根据条件查询到
db.collection('students').doc('2dddb6b55f0e761a003fc3c31129269c').get().then(res=>{
console.log(res,'通过id查询数据')
})
},
2.查询多条
get() {
// 使用where查询多条
db.collection('students').where({
_openid: 'oy8VH49OHyhui1y81L-nNkusiHSc'//代表完全相等
}).get().then(res => {
console.log(res, '通过id查询数据')
})
},
限制
如果要获取一个集合的数据,比如获取 todos 集合上的所有记录,可以在集合上调用 get
方法获取,但通常不建议这么使用,在小程序中我们需要尽量避免一次性获取过量的数据,只应获取必要的数据。为了防止误操作以及保护小程序体验,小程序端在获取集合数据时服务器一次默认并且最多返回 20 条记录,云函数端这个数字则是 100。开发者可以通过 limit
方法指定需要获取的记录数量,但小程序端不能超过 20 条,云函数端不能超过 100 条。
权限:根据每条记录中的openid
doc.openid代表数据表中的openid,Auth代表前台用户的
改
update局部更新
set替换一条记录
更推荐使用update
如果要更新多条,必须在云端函数中处理
删
remove() {
db.collection(stuCollectionName).doc('').remove().then(res => {
console.log(res, '删除成功')
})
}
6.存储能力
在小程序端支持cloud协议的文件地址