UniCloud提供了多种方式来访问云端数据和执行云函数。选择合适的方式取决于项目需求和开发习惯。推荐使用callFunction和clientDB方式,因为它们更安全、高效且具有更简洁的代码。同时,不需要额外注册域名,这提供了额外的安全性。
传统RESTful:
适用情况:需要使用传统的RESTful接口进行数据交互的情况,例如使用HTTP请求来获取数据。特点:通常需要注册域名和处理HTTP请求,不如UniCloud方式安全和高效。callFunction云函数:
适用情况:适用于在UniApp客户端通过uniCloud.callFunction(functionname)调用云函数的情况。特点:相对传统方式更安全,不会暴露域名和IP地址,不易受到攻击,代码简洁,开发高效。
客户端调用
// 在UniApp客户端中调用云函数 uniCloud.callFunction({ name: 'functionname', // 云函数名称 data: { // 传递给云函数的参数 key1: 'value1', key2: 'value2' }, success: function(res) { // 云函数调用成功 console.log('云函数调用成功', res.result); }, fail: function(err) { // 云函数调用失败 console.error('云函数调用失败', err); } });
云对象(importObject):
适用情况:用于UniApp客户端通过uniCloud.importObject(functionname)调用云对象的情况。特点:与传统方式相比,代码更简洁,开发更高效,UniApp 3.4版本起支持。
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 }) } }
clientDB:
适用情况:用于UniApp客户端通过调用uniCloud.database()API来访问云端数据的情况。特点:推荐使用,UniApp 3.4版本起支持,与传统方式相比,更方便,代码更简洁。
客户端调用
// 获取云端数据库引用 const db = uniCloud.database(); // 获取集合(表)的引用 const collection = db.collection('collectionName'); // 替换为实际集合名称 // 查询数据 collection.where({ // 查询条件 key: 'value' }).get().then(res => { // 查询成功 console.log('查询成功', res.data); }).catch(err => { // 查询失败 console.error('查询失败', err); });
网友回复