uniCloud 基础操作
使用云函数对数据库进行增删改查
'use strict'; // 链接数据库 const db = uniCloud.database() // 对数据库聚合操作 const $ = db.command.aggregate // 运行 在云端(服务器端)的函数 exports.main = async (event, context) => { // event为客户端上传的参数 // context 包含了调用信息和运行状态,获取每次调用 的上下文 // 获取某个数据表中的数据集合引用 const collection = db.collection('user') // 获取 user 数据表数据集合引用 // 新增单条数据 (传入一个对象) // let res =collection.add({ // name:"nui-app" // }) // // 新增多条数据(传入数组) // let res = await collection.add([{ // name: 'uni' // }, // { // name: 'app' // } // ]) // console.log('新增数据',JSON.stringify(res)) // // 删除 // const res =await collection.doc('60745cf0fe0f4500016070e4').remove() // console.log('删除数据',JSON.stringify(res)) // 更新 // // 方法一:update // const res =await collection.doc('60745cf0fe0f4500016070e3').update({ // name:'hello' // }) // // 方法二:set // const res=await collection.doc('60745cf0fe0f4500016070e3').set({ // name:'hi' // }) // console.log('更新数据',JSON.stringify(res)) // update 只能更新存在的记录 // set 如果记录存在就更新,如果不存在就添加 // 查找 // 方法一: 查找某一条数据 ( doc 只能够根据 id 进行查找 ) // const res=await collection.doc('60745cf0fe0f4500016070e3').get() // 方法二: where 指定查询条件,返回带新查询条件的新的集合引用 // const res = await collection.where({ // name: 'zyj' // }).get() // orderBy 指定查询排序条件 // const res = await collection.orderBy('createTime', 'desc').get() // 获取表中的 100 条数据,结果为 json 格式 // limit 指定查询结果集数量上限 const res =await collection.limit(100).get() console.log('查找数据', JSON.stringify(res)) //返回数据给客户端 return { code: 200, msg: '查询成功', data: res.data } };
云数据库,如图:

将图片(文件)上传到云存储
上传图片
<template>
<view>
<button class="btn" type="default" @click="upload">上传图片</button>
</view>
</template>
<script>
export default {
data() {
return {}
},
methods: {
// 上传图片
upload() {
// 从本地相册选择图片或使用相机拍照
uni.chooseImage({
count: 1, //最多可以选择的图片张数,默认9
success(res) {
console.log(res);
// tempFilePaths 图片的本地临时文件路径列表
if (res.tempFilePaths.length > 0) {
uni.showLoading({
title: '上传中...'
})
let filePath = res.tempFilePaths[0]
// callback方式 ,进行上传操作
uniCloud.uploadFile({
filePath: filePath, //要上传的文件对象
cloudPath: Date.now(), //保存在云端的文件名,这里以时间戳命名
success(res) {
let imageUrl = res.fileID //云端返回的图片地址
uniCloud.callFunction({ //调用云端函数,把图片地址写入表
name: 'images', //云函数名称
data: { //提交给云端的数据
imageUrl: imageUrl,
createTime: Date.now()
},
success: (res) => {
console.log('数据插入成功')
console.log(res)
},
fail: (err) => {
console.log(err)
},
complete: () => {}
})
},
fail(err) {
console.log(err)
},
complete() {
// 隐藏 loading 提示框
uni.hideLoading()
}
});
}
}
});
}
}
}
</script>
删除图片
<template>
<view>
<button class="btn" type="default" @click="delImg">删除图片</button>
</view>
</template>
<script>
export default {
data() {
return {}
},
methods: {
// 删除图片
delImg() {
// deleteFile 删除云端文件
uniCloud.deleteFile({
fileList: [
'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-2faa875e-33ce-404e-b19d-2be906006793/3375ca49-79ac-45d9-98dc-d8ff759e5873.jpg'
], // 图片路径
success(res) {
console.log(res)
},
fail(err) {
console.log(err)
}
})
}
}
}
</script>
在客户端删除图片时,会报错(删除文件报没有权限):
Error: delete_file_no_permission https://vkceyugu.cdn.bspapp.com/VKCEYUGU-uni0d40711/9b454da9-a759-44ae-9a38-479961e04003.jpg
at Function.complete (pages-index-index.js:381)
at chunk-vendors.js:98
at Object.A [as callback] (chunk-vendors.js:98)
at m (chunk-vendors.js:98)
at XMLHttpRequest.w.onload (chunk-vendors.js:98)
官方介绍:


浙公网安备 33010602011771号