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)
相关推荐
耶啵奶膘1 小时前
uniapp+vue2全局监听退出小程序清除缓存
小程序·uni-app
我开心就好o8 小时前
uniapp点左上角返回键, 重复来回跳转的问题 解决方案
前端·javascript·uni-app
Random_index8 小时前
#Uniapp篇:支持纯血鸿蒙&发布&适配&UIUI
uni-app·harmonyos
初遇你时动了情16 小时前
uniapp 城市选择插件
开发语言·javascript·uni-app
小小黑00718 小时前
uniapp+vue3+ts H5端使用Quill富文本插件以及解决上传图片反显的问题
uni-app·vue
草字18 小时前
uniapp input限制输入负数,以及保留小数点两位.
java·前端·uni-app
前端小胡兔19 小时前
uniapp rpx兼容平板
uni-app
荔枝吖19 小时前
uniapp实现开发遇到过的问题(持续更新中....)
uni-app
艾小逗19 小时前
uniapp将图片url转换成base64支持app和h5
uni-app·base64·imagetobase64
halo141621 小时前
uni-app 界面TabBar中间大图标设置的两种方法
开发语言·javascript·uni-app