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)
相关推荐
软工的小白2 小时前
uniapp开发前端静态视频界面+如何将本地视频转换成网络地址
uni-app·音视频
2501_916008894 小时前
iOS 抓包工具有哪些?全面盘点主流工具与功能对比分析
android·ios·小程序·https·uni-app·iphone·webview
2501_915921434 小时前
iOS混淆工具实战 视频流媒体类 App 的版权与播放安全保护
android·ios·小程序·https·uni-app·iphone·webview
NewChapter °4 小时前
如何通过 Gitee API 上传文件到指定仓库
前端·vue.js·gitee·uni-app
SY_FC7 小时前
uniapp阿里云验证码使用
阿里云·uni-app·notepad++
—Qeyser8 小时前
好看的背景颜色 uniapp+小程序
小程序·uni-app·uniapp·微信小游戏
2501_916008898 小时前
uni-app iOS 日志与崩溃分析全流程 多工具协作的实战指南
android·ios·小程序·https·uni-app·iphone·webview
2501_915921439 小时前
iOS混淆工具实战 在线教育直播类 App 的课程与互动安全防护
android·安全·ios·小程序·uni-app·iphone·webview
织_网11 小时前
UniApp 页面通讯方案全解析:从 API 到状态管理的最佳实践
前端·javascript·uni-app
yuehua_zhang12 小时前
uni app 的app端 写入运行日志到指定文件夹。
前端·javascript·uni-app