unicloud api操作

unicloud api操作 增删改查

云函数有若干子概念,包括 普通云函数、云对象、公共模块、clientDB的action云函数、uniCloud扩展库。

  • 云函数:通过传统json接口方式和客户端通信,客户端使用uniCloud.callfunction("")调用云函数
  • 云对象:是通过前端导入对象来操作的,客户端使用uniCloud.importObject("")导入云对象。详见云对象

云函数调用

参考文档uniapp.dcloud.net.cn/uniCloud/cf...

js 复制代码
// promise方式
uniCloud.callFunction({
    name: 'test', // 云函数名称
    data: { a: 1 }   // 请求参数
  })
  .then(res => {});
  
// async await 
const res = await uniCloud.callFunction({ name: 'test', data: { a: 1  })

// callback方式
uniCloud.callFunction({
    name: 'test',
    data: { a: 1 },
    success(){},  // 成功
    fail(){},   // 失败
    complete(){}   // 完成(不管成功与失败)
});

云函数实现云数据库基本增删改查

参考文档:JQL数据库操作 | uniCloud

  1. 获取数据库引用

    js 复制代码
    const db = uniCloud.database()
  2. 获取数据库集合引用

    js 复制代码
    const collection = db.collection('unicloud-test-714') // uncloud-test-714 为数据表名称
  3. 新增记录

    js 复制代码
    const res = collection.add({user:'alan'})
    js 复制代码
    'use strict';
    const db = uniCloud.database() // 获取数据库引用
    
    exports.main = async (event, context) => {
    	// 获取集合引用
    	const collection = db.collection('unicloud-test-714')
    	// 新增数据
    	const res = await collection.add({user:'alan'})
    	console.log(res)
    	return {
    		"code":0,
    		"msg":"云函数调用成功"
    	}
    };
  4. 删除记录

    js 复制代码
    	const res = await collection.doc('60ee51103b7d3500014124c1').remove()
  5. 数据更新

    js 复制代码
    const res = await collection.doc('60ee52a1827eca0001e56bc4').update({
    		name:"joob"
    	})
    
    const res = await collection.doc('60ee52a1827eca0001e56bc4').set({   // 如果说获取不到内容,从新进行插入记录的操作
    		name:"joob",
      	type:"javascript"
    	})

    update与set的区别:

    当没有找到指定记录时,使用update无法进行更新操作,set在没有查找到指定记录的时候,可以进行新增内容的操作(不存在进行创建添加操作)

  6. 数据查找

    js 复制代码
    // 查询全部
    	const res = await collection.get()
    // 指定条件进行查询-id查询
      const res = await collection.doc('id').get()  // id为需要查询的指定id
    // 指定条件查询-其他条件进行查询
      const res = await collection.where({name:"alan"}).get()

云对象实现云数据库基本增删改查

js 复制代码
// 云对象名:todo
module.exports = {
 add(title, content) {
     // 获取集合unicloud-test-714
     const collection = db.collection('unicloud-test-714') 
     // 新增数据 
     const res = await collection.add({user:'alan'})
     return res;
 },
  //delete(){...
  // update(){...
  // 其他方法
}

客户端的js中

js 复制代码
const todo = uniCloud.importObject('todo') //第一步导入云对象
async function addTodo () {
 try {
  const res = await todo.add('title demo', 'content demo') //导入云对象后就可以直接调用该对象的方法了,注意使用异步await
  uni.showToast({
   title: '创建成功'
  })
 } catch (e) {
  // 符合uniCloud响应体规范 https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=resformat,自动抛出此错误
  uni.showModal({
   title: '创建失败',
   content: e.errMsg,
   showCancel: false
  })
 }
}

云存储操作

  1. 使用uni.chooseImage方法进行图片选择获取

    参考地址:uniapp.dcloud.io/api/media/i...

    js 复制代码
    	uni.chooseImage({
    					count: 1,
    					success(res) {
    						console.log(JSON.stringify(res.tempFilePaths))
    					}
    				})
  2. 使用uniCloud.uploadFile进行文件上传

    参考文档:uniapp.dcloud.io/uniCloud/st...

    js 复制代码
    uni.chooseImage({
    					count: 1,
    					async success(res) {
    						let result = await uniCloud.uploadFile({
    							filePath:res.tempFilePaths[0],
    							cloudPath:'a.jpg',
    							success(res) {
    								console.log(res)
    							},
    							fail(err) {
    								console.log(err)
    							}
    						});
    					}
    				})
  3. 使用uniCloud.deleteFile进行图片删除

    参考文档:uniapp.dcloud.io/uniCloud/st...

    阿里云函数删除不能在客户端进行删除操作,下列代码在云函数中进行使用

    js 复制代码
    let result = await uniCloud.deleteFile({
    	   fileList:['https://vkceyugu.cdn.bspapp.com/VKCEYUGU-6ce25980-c28e-4e78-bdef-a96eb40ad98b/06a1cb3a-84b7-47a0-b554-8aff299cb255.jpg'],
    	});
    	console.log(result)
相关推荐
局外人LZ1 天前
Uniapp脚手架项目搭建,uniapp+vue3+uView pro+vite+pinia+sass
前端·uni-app·sass
2501_915918411 天前
在 iOS 环境下查看 App 详细信息与文件目录
android·ios·小程序·https·uni-app·iphone·webview
前端呆头鹅1 天前
Websocket使用方案详解(uniapp版)
websocket·网络协议·uni-app
浮桥1 天前
uniapp+h5 公众号实现分享海报绘制
uni-app·notepad++
2501_916007471 天前
没有 Mac 用户如何上架 App Store,IPA生成、证书与描述文件管理、跨平台上传
android·macos·ios·小程序·uni-app·iphone·webview
wangjun51591 天前
uniapp uni.downloadFile 偶发性下载文件失败 无响应
uni-app
2501_915106322 天前
当 Perfdog 开始收费之后,我重新整理了一替代方案
android·ios·小程序·https·uni-app·iphone·webview
2501_915918412 天前
中小团队发布,跨平台 iOS 上架,证书、描述文件创建管理,测试分发一体化方案
android·ios·小程序·https·uni-app·iphone·webview
家里有只小肥猫2 天前
uniApp打包ios报错
ios·uni-app
jingling5552 天前
uniapp | 基于高德地图实现位置选择功能(安卓端)
android·前端·javascript·uni-app