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)
相关推荐
码间留白3 小时前
六轮真机实验后,我把鸿蒙直播推流的 UI 全逼成了原生——uni-app 适配 HarmonyOS NEXT 完整复盘
uni-app·鸿蒙·harmonyos next·直播推流·arkts/arkui
wuxianda10302 天前
2026 苹果审核 4.3 (a) 被拒全解析|Guideline 4.3a spam 马甲包拒审原因 + 避坑方案
flutter·uni-app·苹果上架
头发还在的女程序员3 天前
基于 Spring Boot + Vue 3 + uni-app 的灵活用工系统:四端架构与业务流程设计
vue.js·spring boot·uni-app·灵活用工·灵工系统
Dumbness5 天前
订阅消息弹窗必须在用户点击里调:联调实验室里 timing 和 Mock 支付通知踩的坑
javascript·uni-app
码间留白6 天前
uni-app 鸿蒙离线打包:一个改动从源码到真机要穿过几条链
uni-app·鸿蒙·deveco·离线打包·uts插件
多客:duokelijie7 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
码间留白7 天前
鸿蒙端对接 BLE 血压计:从一次握手到读数入库(二)设备篇
物联网·uni-app·鸿蒙·蓝牙ble·血压计
华玥作者8 天前
Vue 3 + TypeScript + uni-app 组件库推荐:hy-app(华玥组件库)
vue.js·typescript·uni-app
FinelyYang8 天前
uniapp使用kkfileview在线预览ppt,excel,word,pdf类型文件
pdf·uni-app·powerpoint
2501_916008898 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview