文章目录
前言
云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。
官方文档:点击前往
微信小程序提供的云开发主要是云数据库、云存储和云函数。使用方法如下:
一、云开发环境配置
需要在app.js中配置如下信息
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
env: 'xiaoxuedi-xxxx',
traceUser: true,
})
二、云数据库
微信小程序提供的云数据库为非关系型数据库,存储方式为key-value。
① 需要注意的是云数据库的权限,是非常严格的,设置有问题的话会导致数据无法读取到
② 数据库一次最多可以读取20条数据
以上两个问题都可以通过下面的云函数来解决
云数据库的使用方法(js):
1.增
//.add
const db = wx.cloud.database()
db.collection('集合名').add({
data:{
key:value
},
success(res){
console.log(res)
}
})
2.删
//.remove
const db = wx.cloud.database()
db.collection('集合名').where({
key:value
}).remove({
success(res){
console.log(res)
}
})
3.改
//.update
const db = wx.cloud.database()
db.collection('集合名').where({
key:value
}).update({
date:{
key:newValue
},
success(res){
console.log(res)
}
})
4.查
//.get
const db = wx.cloud.database()
db.collection('集合名').where({
key:value
}).get({
success(res){
//查询结果的数据 -> res.data
console.log(res.data)
}
})
//条件查询
const db = wx.cloud.database()
db.collection('集合名').where({
progress:_.gt(30)
/*
查询指令 说明
eq 等于
neq 不等于
lt 小于
lte 小于或等于
gt 大于
gte 大于或等于
in 字段值在给定数组中
nin 字段值不在给定数组中
*/
逻辑指令 说明
and 与
or 或
}).get({
success(res){
//查询结果的数据 -> res.data
console.log(res.data)
}
})
云数据库在确认目标时有以下两个方法
1.通过 .doc
//_id为云数据库为数据自动生成的唯一suo'yin
db.collection('xxx').doc('_id')
2.通过 .where
//通过对某个特定值进行限定达到筛选的目的,类似sql语句中的where
db.collection('xxx').where({
key:value
})
三、云存储
上传得到fileID可用于后面的下载和删除
1.上传
//文件路径相同时覆盖
wx.cloud.uploadFile({
cloudPath: 'example.png',
filePath: '', // 文件路径
success: res => {
// get resource ID
console.log(res.fileID)
},
fail: err => {
// handle error
}
})
2.下载
wx.cloud.downloadFile({
fileID: 'a7xzcb',
success: res => {
// get temp file path
console.log(res.tempFilePath)
},
fail: err => {
// handle error
}
})
3.删除
wx.cloud.deleteFile({
fileList: ['a7xzcb'] //fileID
}).then(res => {
// handle success
console.log(res.fileList)
}).catch(error => {
// handle error
})
四、云函数
首先需要在project.config.json中对云函数的根目录进行配置
"cloudfunctionRoot": "cloudfunctions/"
然后新建云函数
右键->上传并部署:云端安装依赖
1.云函数操作云数据库
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({env: 'xiaoxuedi-xxxx'}) //需要对确定环境
// 云函数入口函数
exports.main = async (event, context) => {
return await cloud.database().collection('record').get({ //await异步
success(res){
return res
},
fail(err){
return err
}
})
}
2. 云函数操作云存储
//下载
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
const fileID = 'xxxx'
const res = await cloud.downloadFile({
fileID: fileID,
})
const buffer = res.fileContent
return buffer.toString('utf8')
}