Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
db37cdf7
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
db37cdf7
编写于
7月 15, 2022
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: update cloudobject, jql cache
上级
55fb7bab
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
107 addition
and
0 deletion
+107
-0
docs/uniCloud/cloud-obj.md
docs/uniCloud/cloud-obj.md
+76
-0
docs/uniCloud/jql.md
docs/uniCloud/jql.md
+31
-0
未找到文件。
docs/uniCloud/cloud-obj.md
浏览文件 @
db37cdf7
...
...
@@ -384,6 +384,28 @@ module.exports = {
}
```
### 获取url化时的http信息@get-http-info
> 新增于HBuilderX 3.5.2
仅可在云对象url化时使用,如何使用云对象的url化请参考:
[
云对象url化
](
#http-trigger
)
**接口形式**
`this.getHttpInfo()`
**示例**
```
js
module
.
exports
=
{
_before
:
function
()
{
// _before的用法请看后续章节
const
params
=
this
.
getHttpInfo
()
// 返回值和云函数url化时的event一致
}
}
```
相关文档:
[
云函数url化的入参
](
uniCloud/cf-function.md?id=input
)
## 预处理与后处理@before-and-after
### 预处理 _before@before
...
...
@@ -544,6 +566,59 @@ const todo = uniCloud.importObject('todo')
const
res
=
await
todo
.
add
(
'
title demo
'
,
'
content demo
'
)
```
### 定时触发@timing-trigger
> 新增于HBuilderX 3.5.2
配置方式和云函数一致,相关文档:
[
定时触发器
](
uniCloud/trigger.md
)
配置完成后会触发云对象导出的
`_timing`
方法
云对象代码示例:
```
js
module
.
exports
=
{
_timing
:
function
()
{
console
.
log
(
'
triggered by timing
'
)
}
}
```
**注意**
-
定时触发云对象时,
`_before`
和
`_after`
均不执行
### url化@http-trigger
> 新增于HBuilderX 3.5.2
配置方式和云函数一致,相关文档:
[
url化
](
uniCloud/http.md
)
在url化的文档里面有关于云函数url化时,event.path的说明
>url化场景下,event.path表示以配置的url化路径为根路径的访问路径。以配置`/test`为云函数url化路径,访问`/test/a/b/c`时event.path为`/a/b/c`
调用url化的云对象时,event.path对应的部分必须是云对象导出的方法名。例如:云对象配置的触发路径是
`/todo`
,调用
`/todo/addTodo`
即会触发云对象的addTodo方法。方法区分大小写且不可含
`/`
。
url内query部分会被转换成云对象方法的入参。以下面的todo云对象为例
```
js
module
.
exports
=
{
addTodo
:
function
(
params
)
{
console
.
log
(
params
)
}
}
```
如果通过
`https://xxx.com/todo/addTodo?title=todo-title&content=todo-content`
调用云对象,怎todo方法内的console.log会输出以下内容
`{title: 'todo title', content: 'todo content'}`
需要注意的是自url内解析出的参数均为字符串类型。
**注意**
-
url化方式调用云对象时,
`_before`
和
`_after`
均正常执行
-
如果需要获取其他方式传入云对象的参数(如:post一个json内容到云对象),请使用
[
this.getHttpInfo
](
#get-http-info
)
获取
### 跨服务空间调用云对象@call-by-cloud-cross-space
云端或者客户端均有uniCloud.init方法可以获取其他服务空间的uniCloud实例,使用此实例的importObject可以调用其他服务空间的云对象,参考:
[](
uniCloud/concepts/space.md?id=multi-space
)
...
...
@@ -676,6 +751,7 @@ method1(param1) {
-
云对象和云函数都在cloudfunctions目录下,但是不同于云函数,云对象的入口为
`index.obj.js`
,而云函数则是
`index.js`
。
**为正确区分两者uniCloud做出了限制,云函数内不可存在index.obj.js,云对象内也不可存在index.js。**
-
所有
`_`
开头的方法都是私有方法,客户端不可访问
-
云对象也可以引用公共模块或者npm上的包,引用方式和云函数一致。
-
云对象的导出的方法不可以是箭头函数,导出箭头函数会导致
`this`
指向不正确
## 复杂示例
...
...
docs/uniCloud/jql.md
浏览文件 @
db37cdf7
...
...
@@ -3347,6 +3347,37 @@ module.exports = {
如果所在服务空间开通了redis,action内可直接使用redis扩展。目前只能云端运行,后续会支持本地运行时在action内使用redis扩展
**注意**
-
action上传后可能需要一段时间才会在云端生效,通常是3分钟左右
## 缓存JQL结果到Redis内@redis-cache
> 新增于HBuilderX 3.5.2
用于缓存业务中不常改动或不需要及时更新的数据,如新闻热点等。详细用法如下
1.
在插件市场导入
`uni-config-center`
插件,插件地址:
[
uni-config-center
](
https://ext.dcloud.net.cn/plugin?id=4425
)
2.
在
`uniCloud/cloudfunction/common/uni-config-center`
下创建
`uni-jql-cache-redis.json`
文件(注意此文件是标准json格式,不支持注释)
整个
`uni-jql-cache-redis.json`
文件是一个数组,其中每一项是一个缓存配置。示例内容如下
```
js
[{
"
id
"
:
"
test-get
"
,
// 缓存id
"
jql
"
:
"
db.collection('test').limit(10).get()
"
,
// 要缓存的数据库指令
"
expiresIn
"
:
3600
// 缓存有效期
}]
```
**注意**
-
注意id为缓存唯一id,不可与其他项重复
-
jql会将缓存配置对应的查询结果缓存到key为
`unicloud:jql-cache:${id}:string`
redis缓存内
-
目前不可缓存使用了
`db.getCloudEnv()`
或
`$cloudEnv_`
开头的云端环境变量的查询
-
不可缓存使用了action的查询
-
不配置expiresIn时数据将会持久保存在redis内
## 数据库运算方法列表@aggregate-operator
uniCloud的云数据库,提供了一批强大的运算方法。这些方法是数据库执行的,而不是云函数执行的。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录