微信小程序3-云开发

云开发 ?开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力
?云开发提供的几大基础能力:
??1.云函数:无需自建服务器
??2.数据库:无需自建数据库
??3.储存:无需自建存储和 CDN
??4.云调用:原生微信服务集成
1.数据库 1-1增删改查 1-1-1初始化 ?在开始使用数据库 API 进行增删改查操作之前,需要先获取数据库的引用
?const db = wx.cloud.database()
?获取其它环境的数据库引入:

const testDB = wx.cloud.database({ //env为环境名 env: 'test' })

1-1-2 添加数据 【微信小程序3-云开发】创建集合
微信小程序3-云开发
文章图片
?add方法添加数据
//collection内添加的是 集合名 //add方法用来往指定集合中添加一条数据 db.collection('...').add({ // data 字段表示需新增的 JSON 数据 data: {}, //添加成功后执行的函数 success: function(res) { // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id console.log(res) } })

?只要传入的对象中没有success,failcomplete,add方法就会返回一个Promise
db.collection('...').add({ data: {} }).then(res=>{ console.log(res) })

1-1-3删除数据 ?remove方法
删除一条数据 // collection同上 doc中添加的是生成数据后其中的 _id的 属性值 db.collection('...').doc('...').remove({ success: function(res) { console.log(res.data) } })

1-1-4更新数据 ?update方法,局部更新,更新一条数据或一个集合中的数据
db.collection('...').doc('...').update({ // data 传入需要局部更新的数据 data: { // 表示将 done 字段置为 true done: true }, success: function(res) { console.log(res) } })

1-1-5查询数据 ?get方法,获取一条数据
获取一条数据 db.collection('...').doc('...').get({ success: function(res) { // res.data 包含该记录的数据 console.log(res.data) } }) 获取多条数据,通过where方法 where方法中可以理解为筛选条件 db.collection('...').where({ sex:'男', age: 20 }) .get({ success: function(res) { // res输出的数据为所有年龄大于20的男性 console.log(res.data) } }) 获取一个集合的数据 db.collection('...').get({ success: function(res) { // res是一个包含集合中有权限访问的所有记录的数据,不超过 20 条 console.log(res.data) } })

1-1-6 查询指令 ?这些指令都依赖db.command对象
1.eq 等于 2.neq 不等于 3.lt 小于 4.lte 小于或等于 5.gt 大于 6.gte 大于或等于 7.in 字段值在给定数组中 8.nin 字段值不在给定数组中

2.云函数 ?云函数即在云端(服务器端)运行的函数
?在项目根目录找到project.config.json文件,新增 cloudfunctionRoot字段,指定本地已存在的目录作为云函数的本地根目录
云函数模板 // 云函数入口文件 const cloud = require('wx-server-sdk') //先初始化,再执行别的操作 cloud.init() //使用增删改查功能前先声明 const db = cloud.database(); const _ = db.command; // 云函数入口函数 //event 是触发云函数的事件 //context 对象包含了此处调用的调用信息和运行状态 //函数内可以对数据库的数据进行操作 exports.main = async (event, context) => { const wxContext = cloud.getWXContext()return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } }

?在小程序中调用云函数
wx.cloud.callFunction({ // 云函数名称 name: '...', // 传给云函数的参数 data: { a: 1, b: 2, }, success: function(res) { console.log(res) // 3 }, fail: console.error })

    推荐阅读