云开发
wx.cloud.init({ env: \'test-x1dzi\' })
云数据库
数据类型 String,Number,Boolean,Array,Object,Date,GeoPoint,Null
权限管理,小程序的权限分小程序端和管理端,其中管理端包括云函数和云控制台
小程序运行的程序,读写数据库受权限控制
管理端拥有读写数据库全部权限
初始化
const db = wx.cloud.database()
获取数据库集合
const todos = db.collection(\'todos\')
假设有个ID为\'todo-identifiant-aleatoire\',可以通过doc获得
const todo = db.collection(\'todos\').doc(\'todo-identifiant-aleatoire\')
插入数据
通过add方法添加数据
db.collection(\'todos\').add({ // data 字段表示需新增的 JSON 数据 data: { // _id: \'todo-identifiant-aleatoire\', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了 description: \'learn cloud database\', due: new Date(\'2018-09-01\'), tags: [ \'cloud\', \'database\' ], // 为待办事项添加一个地理位置(113°E,23°N) location: new db.Geo.Point(113, 23), done: false }, success(res) { // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id console.log(res) } })
查询数据
通过get方法查询数据
db.collection(\'todos\').doc(\'todo-identifiant-aleatoire\').get({ success(res) { // res.data 包含该记录的数据 console.log(res.data) } })
获取多条记录
db.collection(\'todos\').where({ _openid: \'user-open-id\', done: false }) .get({ success(res) { // res.data 是包含以上定义的两条记录的数组 console.log(res.data) } })
小程序端只能获取一条数据,获取多条数据可以通过云函数
return new Promise((resolve, reject) => { db.collection(\'test\').where({ done: false }).get().then(res=>{ resolve(res) }).catch(err=>{ reject(err) }) })
小程序端调用云函数
wx.cloud.callFunction({ name:\'get\', success: res=>{ console.log(res) } })
更新数据
db.collection(\'todos\').doc(\'todo-identifiant-aleatoire\').update({ // data 传入需要局部更新的数据 data: { // 表示将 done 字段置为 true done: true }, success(res) { console.log(res.data) } })
删除数据
db.collection(\'todos\').doc(\'todo-identifiant-aleatoire\').remove({ success(res) { console.log(res.data) } })
云函数
在跟目录package.config.json配置
{ "cloudfunctionRoot": "./functions/" }
云函数模板
const cloud = require(\'wx-server-sdk\') // 云函数入口函数 exports.main = async (event, context) => { }
代码
exports.main = async (event, context) => ({ sum: event.a + event.b })
小程序中调用云函数
wx.cloud.callFunction({ // 云函数名称 name: \'add\', // 传给云函数的参数 data: { a: 1, b: 2, }, success(res) { console.log(res.result.sum) // 3 }, fail: console.error })
云存储
上传文件
wx.cloud.uploadFile({ cloudPath: \'example.png\', // 上传至云端的路径 filePath: \'\', // 小程序临时文件路径 success: res => { // 返回文件 ID console.log(res.fileID) }, fail: console.error })
下载文件
wx.cloud.downloadFile({ fileID: \'\', // 文件 ID success: res => { // 返回临时文件路径 console.log(res.tempFilePath) }, fail: console.error })
删除文件
wx.cloud.deleteFile({ fileList: [\'a7xzcb\'], success: res => { // handle success console.log(res.fileList) }, fail: console.error })