# 云开发
# 前期准备
示例代码
// app.json中添加如下配置
"plugins": {
"cloud": {
"version": "0.0.1",
"provider": "641a62448a00310001441def"
}
}
// app.js中添加如下内容
ft.loadExtApi({
name: 'cloud',
fun: requirePlugin('cloud')
})
# init
基础库3.0.35开始支持
init(Object object)
初始化。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
env | string | object | 是 |
示例代码
fr.cloud.init({
env: 'test-111',
appid: 'xxx', //微信小程序id
secret: 'xxx', //微信小程序appsecret
})
# database
基础库3.0.35开始支持
database(Object object)
数据库初始化。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
env | string | object | 是 |
示例代码
const testDB = ft.cloud.database({
env: 'test'
})
# 云函数
基础库3.0.35开始支持
callFunction(Object object)
云函数。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
name | string | 是 | 函数名 | |
data | object | |||
config | object |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | |
result | any | 云函数返回的结果 |
requestID | string | 云函数执行 ID,可用于日志查询 |
示例代码
ft.cloud.callFunction({
// 云函数名称
name: 'add',
// 传给云函数的参数
data: {
a: 1,
b: 2,
},
success: function(res) {
}
})
# add
基础库3.0.35开始支持
add(Object object)
插入数据(数据库)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
data | object | 是 | 插入的数据 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | |
_id | string |
示例代码
db.collection('xxx').add({
data: {
description: "learn cloud database",
},
success: function(res) {
console.log(res)
}
})
# get
基础库3.0.35开始支持
get(Object object)
查询数据(数据库)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
data | object | 是 | 插入的数据 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | |
data | object | 数据 |
示例代码
db.collection('xxx').doc('xxx').get({
success: function(res) {
console.log(res.data)
}
})
# update
基础库3.0.35开始支持
update(Object object)
更新数据(数据库)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
data | object | 是 | 需要更新的数据 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | |
data | object | 数据 |
示例代码
db.collection('xxx').doc('xxx').update({
data: {
done: true
},
success: function(res) {
console.log(res.data)
}
})
# remove
基础库3.0.35开始支持
remove(Object object)
删除数据(数据库)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
data | object | 是 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | |
data | object | 数据 |
示例代码
db.collection('xxx').doc('xxx').remove({
success: function(res) {
console.log(res.data)
}
})
# 查询、更新数组/嵌套对象
基础库3.0.35开始支持
示例代码
// 普通匹配
db.collection('xxx').where({
progress: 50
}).get()
// 匹配记录中的嵌套字段
db.collection('xxx').where({
style: {
color: 'red'
}
}).get()
// 方式二
db.collection('xxx').where({
'style.color': 'red'
}).get()
// 匹配数组
db.collection('xxx').where({
numbers: [10, 20, 30]
}).get()
// 匹配数组中的元素
db.collection('xxx').where({
numbers: 20
}).get()
# 构建查询条件
基础库3.0.35开始支持
示例代码
// 指定查询结果集数量上限
db.collection('todos').limit(10)
.get()
.then(console.log)
.catch(console.error)
// 指定查询返回结果时从指定序列后的结果开始返回,常用于分页
db.collection('todos').skip(10)
.get()
.then(console.log)
.catch(console.error)
// 指定返回结果中记录需返回的字段
db.collection('todos').field({
description: true,
done: true,
progress: true,
}).get()
.then(console.log)
.catch(console.error)
# uploadFile
基础库3.0.35开始支持
uploadFile(Object object)
上传文件(存储)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
cloudPath | string | 是 | 云存储路径 | |
filePath | string | 是 | 要上传文件资源的路径 | |
config | Object | 配置 | ||
success | string | 成功回调 | ||
fail | string | 失败回调 | ||
complete | string | 结束回调 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | 文件 ID |
fileID | object | 数据 |
statusCode | number | 服务器返回的 HTTP 状态码 |
示例代码
ft.cloud.uploadFile({
cloudPath: 'xxx.png',
filePath: '',
success: res => {
console.log(res.fileID)
},
fail: err => {
}
})
# downloadFile
基础库3.0.35开始支持
downloadFile(Object object)
从云存储空间下载文件(存储)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
fileID | string | 是 | ||
config | Object | 配置 | ||
success | string | 成功回调 | ||
fail | string | 失败回调 | ||
complete | string | 结束回调 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | 文件 ID |
tempFilePath | object | 临时文件路径 |
statusCode | number | 服务器返回的 HTTP 状态码 |
示例代码
ft.cloud.downloadFile({
fileID: 'xxx',
success: res => {
console.log(res.tempFilePath)
},
fail: err => {
}
})
# deleteFile
基础库3.0.35开始支持
deleteFile(Object object)
从云存储空间删除文件,一次最多 50 个(存储)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
fileList | Object | 是 | 文件列表 | |
success | string | 成功回调 | ||
fail | string | 失败回调 | ||
complete | string | 结束回调 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | 文件 ID |
fileList | object | 文件列表 |
示例代码
ft.cloud.deleteFile({
fileList: ['xxx'],
success: res => {
console.log(res.fileList)
},
fail: err => {
},
complete: res => {
}
})
# getTempFileURL
基础库3.0.35开始支持
getTempFileURL(Object object)
用云文件 ID 换取真实链接,公有读的文件获取的链接不会过期,私有的文件获取的链接十分钟有效期。一次最多取 50 个。(存储)。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
fileList | Object | 是 | 文件列表 | |
success | string | 成功回调 | ||
fail | string | 失败回调 | ||
complete | string | 结束回调 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | 文件 ID |
fileList | object | 文件列表 |
示例代码
ft.cloud.getTempFileURL({
fileList: ['cloud://xxx', 'cloud://yyy'],
success: res => {
console.log(res.fileList)
},
fail: err => {
}
})
# 未实现功能
- 查询指令
- 聚合查询
- 实时数据推送
- 地理位置
- traceUser
- serverDate
- 构造正则表达式
- 创建集合
- 支持在 image、audio 等组件中传入云文件 ID
::: tips 注意
未实现功能的替换方案:
可以通过云函数调用来实现, 如下:
云函数中引入wx-server-sdk库,比如:
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event) => {
const { ENV, OPENID, APPID } = cloud.getWXContext()
const db = cloud.database()
cosnt _ = db.command
const dbResult = await db.collection('test').where({ progress: _gt(10) }).get()
return {
dbResult,
ENV,
OPENID,
APPID,
}
}
:::