diff --git a/docs/uniCloud/clientdb.md b/docs/uniCloud/clientdb.md index 60cdb3eb458fc6c15b3eff01fb057fe4858425ae..6aeb9205ff9b7ec05c22c72a2e1cd8a9ae945bac 100644 --- a/docs/uniCloud/clientdb.md +++ b/docs/uniCloud/clientdb.md @@ -87,7 +87,6 @@ js API可以执行所有数据库操作。``组件是js API的再 ```js // 获取db引用 const db = uniCloud.database() //代码块为cdb -// 使用uni-clientDB db.collection('list') .where({ name: "hello-uni-app" //传统MongoDB写法,不是jql写法。实际开发中推荐使用jql写法 @@ -105,7 +104,6 @@ db.collection('list') ```js // 获取db引用 const db = uniCloud.database() //代码块为cdb -// 使用uni-clientDB db.collection('list') .where('name=="hello-uni-app"') .get() @@ -126,6 +124,33 @@ db.collection('list') - 更新数据库时不可使用更新操作符`db.command.inc`等 - 更新数据时键值不可使用`{'a.b.c': 1}`的形式,需要写成`{a:{b:{c:1}}}`形式 +clientDB有两种方式获取数据库引用`uniCloud.database()`和`uniCloud.databaseForJQL()`(新增于HBuilderX 3.6.7)。推荐在支持`databaseForJQL`接口的版本使用`databaseForJQL`接口,和云端jql扩展库返回结构一致,方便代码复用 + +database接口和databaseForJQL有以下不同点 + +1. database接口返回的数据结构多了一层result + + 在上面的示例中res的结构如下 + ```js + { + result: { + data: [{ + xx: xx + }] + } + } + ``` + 如果使用databaseForJQL接口,res结构如下 + ```js + { + data: [{ + xx: xx + }] + } + ``` + +2. 使用拦截器相关接口拦截或取消拦截 databaseForJQL 接口时需使用,`databaseForJQL`作为接口名,关于拦截器的更多信息,请参考:[uniCloud 拦截器](client-sdk.md#add-interceptor) + ## 客户端事件@event diff --git a/docs/uniCloud/cloud-obj.md b/docs/uniCloud/cloud-obj.md index b1718583cb4e810a55fa21dc45695e0e6b809516..8999eb780afc73dae15f7e70cf2302780f0ba3f6 100644 --- a/docs/uniCloud/cloud-obj.md +++ b/docs/uniCloud/cloud-obj.md @@ -231,6 +231,33 @@ todo.add('title demo', 'content demo').then(res => { }) ``` +**importObject参数说明** + +```js +interface ImportObjectOptions { + /** + * 是否移除自动展示的ui + */ + customUI?: boolean; + /** + * loading界面配置 + */ + loadingOptions?: ImportObjectLoadingOptions; + /** + * 错误提示配置 + */ + errorOptions?: ImportObjectErrorOptions; + /** + * 使用安全网络的方法及安全网络类型 + */ + secretMethods?: Record; + /** + * 转化云对象内未捕获的错误或客户端网络错误 + */ + parseSystemError?: (params: ParseSystemErrorParams) => Promise | ParsedSystemError; +} +``` + ## 云对象的API@api @@ -761,7 +788,18 @@ uniCloud.importObject('todo', { errorOptions: { // 错误界面相关配置 type: 'modal', // 错误信息展示方式,可取值:modal(弹框,默认)、toast(toast消息框)。默认值为:modal retry: false // 是否展示重试按钮,仅在type为modal时生效。用户点击重试按钮时将重新请求调用的方法,默认为false - } + }, + parseSystemError({ // 转化云对象内未捕获的错误,或客户端网络错误 + objectName, // 云对象名 + methodName, // 方法名 + params, // 调用方法时传的参数,注意params是一个数组 + errCode, // 请求返回的错误码 + errMsg // 请求返回的错误信息 + } = {}){ + return { + errMsg: '系统错误,请稍后再试' // 用于展示的错误信息 + } + } }) ``` diff --git a/docs/uniCloud/secure-network.md b/docs/uniCloud/secure-network.md index e9312e17fb3357c528b40c5a27a34aa5189d309f..eb69c93300764c06807ef295294dbb18d743d368 100644 --- a/docs/uniCloud/secure-network.md +++ b/docs/uniCloud/secure-network.md @@ -188,6 +188,10 @@ uniCloud.callFunction({ 也就是每个callFunction请求,都可以指定是否加密,以及是对上行数据还是下行数据加密。 +**注意** + +- 安全网络相关接口不支持本地调试。即使在HBuilderX里面勾选连接本地云函数,客户端在请求时也会自动连接云端云函数。 + ### 客户端请求云对象 客户端通过importObject调用云对象时,通过secretMethods参数来配置每个方法调用时是否加密。