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)
相关推荐
茶憶4 小时前
UniApp RenderJS中集成 Leaflet地图,突破APP跨端开发限制
javascript·vue.js·uni-app
2501_9159184116 小时前
移动端 HTTPS 抓包实战,多工具组合分析与高效排查指南
数据库·网络协议·ios·小程序·https·uni-app·iphone
雪芽蓝域zzs20 小时前
uni-app 将 base64 图片编码转为 Blob 本地文件路径
网络协议·udp·uni-app
星光一影1 天前
陪诊陪检系统源码,陪诊小程序,陪诊APP,陪诊服务,家政上门系统,居家护理陪护源码
mysql·小程序·uni-app·php
Qlittleboy1 天前
uniapp里 rich-text 里的img图片如何控制最大宽度
uni-app
阿奇__1 天前
uniapp h5 app 小程序获取当前定位
小程序·uni-app
*小雪1 天前
uniapp写H5授权登录及分享,返回到目标页面
开发语言·javascript·uni-app
一只程序熊1 天前
uniapp uniim ios配置消息推送
uni-app
2501_915106321 天前
iOS性能调优的系统化实践,从架构分层到多工具协同的全流程优化指南(开发者深度版)
android·ios·小程序·架构·uni-app·iphone·webview
TE-茶叶蛋2 天前
Uniapp运行MuMu模拟器
uni-app