
正文
微信小程序-云开发
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
云开发
初始化
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(, ),
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: ,
b: ,
},
success(res) {
console.log(res.result.sum) //
},
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
})







