提交 e96a9d56 编写于 作者: W wanganxp

更新clientDB和云对象的分工说明

上级 a52da89e
......@@ -82,7 +82,10 @@ uniCloud体系里,客户端和服务端的云函数通信,有4种方式:
- clientDB不适用的情况:
请求不操作云数据库,比如向外部web系统发请求、操作redis、删除云文件等,或者操作的云数据库请求不希望暴露在前端
1. 请求不操作云数据库,比如向外部web系统发请求、操作redis、删除云文件等;
2. 操作的云数据库请求不希望暴露在前端;
3. 数据库表和字段数量多而接口数量少。给每个数据配置权限的工作量超过了控制少数接口权限的工作量;
4. 权限体系较复杂,除了用户和管理员外还有较多其他权限条件或动态权限。此时在schema和action中编写代码的复杂度超过了写接口。
**直观体验代码示例**
......@@ -98,19 +101,13 @@ db.collection('list').get()
})
```
由于篇幅较长,学习clientDB需另见文档[clientDB](/uniCloud/clientdb)
由于篇幅较长,学习clientDB需另见文档[clientDB](clientdb.md)
### 云对象方式
- 云对象适用情况:
云对象和clientDB最大的区别,是云对象把数据库操作(以及其他逻辑)封装在云对象的方法里面。
如果客户端使用uni-app开发,且属于上文中不适用clientDB的情况,则需要云函数或云对象。
如果该请求是为了和uni-app客户端通信,则使用云对象。
- 云对象不适用的情况:
不是和uni-app客户端通信,比如需要云函数URL化后与非uni-app客户端通信(其他应用或服务器),比如云端定时运行的云函数。(但云对象未来有计划支持URL化和定时任务)
它无法像clientDB那样无需开发服务器代码,它仍需在客户端和云端分别写代码。但它的应用场景不受限制。上文中不适用clientDB的情况,都可以使用云对象解决。
**直观体验代码示例**
......@@ -141,11 +138,19 @@ async function sum () { //注意方法或生命周期需使用async异步方式
由于篇幅较长,学习云对象需另见文档[云对象](cloud-obj.md)
clientDB和云对象可以混合使用:
1. 比如官方提供了[uni-id-pages](uni-id-pages.md),是基于云对象的登录注册系统,开发者可以导出这个插件处理账户体系,然后剩余的业务如果不算复杂,就可以使用clientDB搞定。
2. 一个业务的用户端和admin端也可以是不同的技术栈。比如业务端有复杂的动态权限,而管理端只有一个admin管理员使用,那么admin端使用[schema2code](schema2code.md)会非常高效,而这些技术都基于clientDB。
### 普通云函数callFunction方式
- 普通云函数适用的情况:
在HBuilderX 3.5.2之前,需要URL化和定时运行时,只能使用普通云函数;在HBuilderX 3.5.2+,云对象也支持了URL化和定时运行,此时推荐使用云对象替代云函数。
在HBuilderX 3.5.2之前,需要URL化和定时运行时,只能使用普通云函数;在HBuilderX 3.5.2+,云对象也支持了URL化和定时运行。
官方不推荐开发者使用云函数,有相关需求推荐使用云对象替代云函数。
目前官方还未提供基于云对象的router模式的框架,有相关需求可以使用三方框架。
**直观体验代码示例**
......@@ -192,7 +197,9 @@ exports.main = async (event, context) => {
-->
### 云函数URL化方式
可以让云函数/云对象生成一个HTTP URL。可以在Web控制台进行URL化配置。它本质上属于云函数的一种调用方式。
可以让云函数/云对象生成一个HTTP URL。这样非uni-app应用,可以通过ajax请求和云函数/云对象通信。
在 uniCloud Web控制台进行URL化配置。
由于篇幅较长,需另见文档[云函数URL化](http.md)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册