Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
1bfcc1a2
U
uni-app
项目概览
DCloud
/
uni-app
2 个月 前同步成功
通知
716
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1bfcc1a2
编写于
12月 18, 2020
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: hx 3.0.0
上级
b2361c8f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
233 addition
and
46 deletion
+233
-46
docs/uniCloud/cf-functions.md
docs/uniCloud/cf-functions.md
+106
-1
docs/uniCloud/hellodb.md
docs/uniCloud/hellodb.md
+50
-38
docs/uniCloud/quickstart.md
docs/uniCloud/quickstart.md
+48
-4
docs/uniCloud/schema.md
docs/uniCloud/schema.md
+29
-3
未找到文件。
docs/uniCloud/cf-functions.md
浏览文件 @
1bfcc1a2
...
...
@@ -235,12 +235,117 @@ serverless默认是没有固定的服务器IP的,因为有很多服务器在
-
同一个服务空间内所有开启固定出口IP的云函数使用的是同一个IP。
-
如果你是免费版升配到付费版,开启
`固定IP`
功能后,会导致付费版到期无法自动降级到免费版,请注意按时续费
## 云函数package.json@packagejson
HBuilderX 3.0.0版本之前,package.json只是一个标准的package.json,一般来说安装依赖或公共模块才需要。HBuilderX 3.0.0及以上版本,package.json也可以用来配置云函数。
package.json是一个标准json文件,不可带注释。下面是一个package.json示例。
```
json
{
"name"
:
"add-article"
,
"version"
:
"1.0.0"
,
"description"
:
"新增文章"
,
"main"
:
"index.js"
,
"dependencies"
:
{
},
"cloudfunction-config"
:
{
"memorySize"
:
256
,
"timeout"
:
5
,
"triggers"
:
[{
"name"
:
"myTrigger"
,
"type"
:
"timer"
,
"config"
:
"0 0 2 1 * * *"
}],
"path"
:
""
}
}
```
cloudfunction-config字段是云函数配置,支持的配置如下
```
js
{
"
memorySize
"
:
256
,
// 函数的最大可用内存,单位MB,可选值: 128|256|512|1024|2048,默认值256
"
timeout
"
:
5
,
// 函数的超时时间,单位秒,默认值5。最长为60秒,阿里云在定时触发时最长可以是600秒
// triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
"
triggers
"
:
[{
// name: 触发器的名字,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger,name不对阿里云生效
"
name
"
:
"
myTrigger
"
,
// type: 触发器类型,目前仅支持 timer (即 定时触发器),type不对阿里云生效
"
type
"
:
"
timer
"
,
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger。使用阿里云时会自动忽略最后一位,即代表年份的一位在阿里云不生效
"
config
"
:
"
0 0 2 1 * * *
"
}],
// 云函数Url化path部分,阿里云需要以/http/开头
"
path
"
:
""
}
```
**注意**
-
在web控制台修改云函数配置后,通过HBuilderX的下载云函数菜单会在package.json内添加修改后的云函数配置
-
上传云函数时,如果项目下的package.json内包含云函数配置会同时进行云函数的配置更新
## 使用cloudfunctions_init初始化云函数@init
自
`HBuilderX 2.9`
起
`uniCloud`
提供了
`cloudfunctions_init.json`
来方便开发者快速进行云函数的初始化操作,即在HBuilderX工具中,一次性完成所有云函数的配置。
这个功能尤其适合插件作者,不用再使用说明文档一步一步引导用户去配置云函数定时触发器、内存、url化路径等。
**注意:HBuilderX 3.0.0版本起不再使用cloudfunctions_init.json来初始化云函数**
详细调整如下:
不再使用cloudfunctions_init.json,内容被分散到每个云函数的package.json的
`cloudfunction-config`
字段下
package.json是一个标准json文件,不可带注释。下面是一个package.json示例
```
json
{
"name"
:
"add-article"
,
"version"
:
"1.0.0"
,
"description"
:
"新增文章"
,
"main"
:
"index.js"
,
"dependencies"
:
{
},
"cloudfunction-config"
:
{
"memorySize"
:
256
,
"timeout"
:
5
,
"triggers"
:
[{
"name"
:
"myTrigger"
,
"type"
:
"timer"
,
"config"
:
"0 0 2 1 * * *"
}],
"path"
:
""
}
}
```
cloudfunction-config说明如下
```
js
{
"
memorySize
"
:
256
,
// 函数的最大可用内存,单位MB,可选值: 128|256|512|1024|2048,默认值256
"
timeout
"
:
5
,
// 函数的超时时间,单位秒,默认值5。最长为60秒,阿里云在定时触发时最长可以是600秒
// triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
"
triggers
"
:
[{
// name: 触发器的名字,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger,name不对阿里云生效
"
name
"
:
"
myTrigger
"
,
// type: 触发器类型,目前仅支持 timer (即 定时触发器),type不对阿里云生效
"
type
"
:
"
timer
"
,
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger。使用阿里云时会自动忽略最后一位,即代表年份的一位在阿里云不生效
"
config
"
:
"
0 0 2 1 * * *
"
}],
// 云函数Url化path部分,阿里云需要以/http/开头
"
path
"
:
""
}
```
**HBuilderX 3.0.0之前版本,请继续阅读下面文档**
**使用方式**
-
在
`cloudfucntions`
目录右键即可创建
`cloudfunctions_init.json`
,
...
...
@@ -259,7 +364,7 @@ serverless默认是没有固定的服务器IP的,因为有很多服务器在
"name"
:
"myTrigger"
,
//
type:
触发器类型,目前仅支持
timer
(即
定时触发器),type不对阿里云生效
"type"
:
"timer"
,
//
config:
触发器配置,在定时触发器下,config
格式为
cron
表达式,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger。使用阿里云时会自动忽略最后一位,即代表年份的一位
//
config:
触发器配置,在定时触发器下,config
格式为
cron
表达式,规则见https://uniapp.dcloud.net.cn/uniCloud/trigger。使用阿里云时会自动忽略最后一位,即代表年份的一位
在阿里云不生效
"config"
:
"0 0 2 1 * * *"
}],
//
云函数Url化path部分,阿里云需要以/http/开头
...
...
docs/uniCloud/hellodb.md
浏览文件 @
1bfcc1a2
...
...
@@ -277,49 +277,61 @@ uniCloud数据库提供了多种数据导入导出和备份方案。
`db_init.json`
包含三部分:数据内容(data)、数据表索引(index)、数据表结构(schema),形式如下
**注意:HBuilderX 3.0.0以上版本schema不再放在db_init.json内,db_init.json文件位置也做了调整。**
详细调整如下
-
db_init.json位置由
`cloudfunctions/db_init.json`
移至
`uniCloud/database/db_init.json`
-
schema不再放在db_init.json内,每个表都有一个单独的schema文件,比如news表对应的schema为
`uniCloud/database/news.schema.json`
-
schema可以在
`uniCloud/database`
目录上右键创建
-
db_init.json文件右键初始化云数据库时依然会带上schema进行数据库的初始化,除schema外HBuilderX3.0.0以上版本使用db_init.json初始化数据库还会带上扩展校验函数,扩展校验函数位于
`uniCloud/database/validateFunction`
目录下,扩展校验函数文档详见:
[
validateFunction
](
https://uniapp.dcloud.net.cn/uniCloud/schema?id=validatefunction
)
**HBuilderX 3.0.0版本之前的db_init.json示例**
```
json
{
"collection_test"
:
{
//
集合(表名)
"data"
:
[
//
数据
{
"_id"
:
"da51bd8c5e37ac14099ea43a2505a1a5"
,
//
一般不带_id字段,防止导入时数据冲突。
"name"
:
"tom"
}
],
"index"
:
[{
//
索引
"IndexName"
:
"index_a"
,
//
索引名称
"MgoKeySchema"
:
{
//
索引规则
"MgoIndexKeys"
:
[{
"Name"
:
"index"
,
//
索引字段
"Direction"
:
"1"
//
索引方向,
1
:ASC-升序,
-1
:DESC-降序,
2
dsphere:地理位置
}],
"MgoIsUnique"
:
false
//
索引是否唯一
}
"collection_test"
:
{
//
集合(表名)
"data"
:
[
//
数据
{
"_id"
:
"da51bd8c5e37ac14099ea43a2505a1a5"
,
//
一般不带_id字段,防止导入时数据冲突。
"name"
:
"tom"
}
],
"index"
:
[{
//
索引
"IndexName"
:
"index_a"
,
//
索引名称
"MgoKeySchema"
:
{
//
索引规则
"MgoIndexKeys"
:
[{
"Name"
:
"index"
,
//
索引字段
"Direction"
:
"1"
//
索引方向,
1
:ASC-升序,
-1
:DESC-降序,
2
dsphere:地理位置
}],
"schema"
:
{
"bsonType"
:
"object"
,
"permission"
:
{
".read"
:
true
,
".create"
:
false
,
".update"
:
false
,
".delete"
:
false
},
"required"
:
[
"image_url"
],
"properties"
:
{
"_id"
:
{
"description"
:
"ID,系统自动生成"
},
"image_url"
:
{
"bsonType"
:
"string"
,
"description"
:
"可以是在线地址,也支持本地地址"
,
"label"
:
"图片url"
}
}
}
"MgoIsUnique"
:
false
//
索引是否唯一
}
}],
"schema"
:
{
"bsonType"
:
"object"
,
"permission"
:
{
".read"
:
true
,
".create"
:
false
,
".update"
:
false
,
".delete"
:
false
},
"required"
:
[
"image_url"
],
"properties"
:
{
"_id"
:
{
"description"
:
"ID,系统自动生成"
},
"image_url"
:
{
"bsonType"
:
"string"
,
"description"
:
"可以是在线地址,也支持本地地址"
,
"label"
:
"图片url"
}
}
}
}
}
```
在HBuilderX中对上述
`db_init.json`
点右键,可初始化数据库到云服务空间,创建
`collection_test`
表,并按上述json配置设置该表的index索引和schema,以及插入data下的数据。
...
...
docs/uniCloud/quickstart.md
浏览文件 @
1bfcc1a2
...
...
@@ -11,6 +11,50 @@
uniCloud云开发环境创建成功后,项目根目录下会有一个带有云图标的特殊目录,名为“cloudfunctions”。(即便是cli创建的项目,云函数目录也在项目的根目录下,而不是src下)
非uni-app项目也可以通过使用
[
云函数Url化
](
uniCloud/http.md
)
来享受云函数的带来的便利。
## 目录结构
HBuilderX 3.0起目录结构做了调整如下:
```
bash
┌──uniCloud-aliyun 云空间目录,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb
| |——— cloudfunctions 云函数目录
| | │───common 云函数公用模块目录
[
详情]
(
https://uniapp.dcloud.io/uniCloud/cf-common
)
| | | └──hello-common 云函数公用模块
| | | │──index.js 公用模块代码
| | | └──package.json 公用模块package.json
| | │───uni-clientDB-actions
| | │ └──new_action.js clientDB action代码
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/clientdb?id
=
action
)
| | └───function-name 云函数目录
| | │──index.js 云函数代码
| | └──package.json 包含cloudfunctions_init.json内容的package.json
│ └──database 云数据目录
│ │──validateFunction 数据库扩展校验函数目录
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/hellodb?id
=
db-init
)
│ │ └──new_validation.js 扩展校验函数代码
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/schema?id
=
validatefunction
)
│ │──db_init.json db_init.json内不再包含schema,初始化数据库文件
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/hellodb?id
=
db-init
)
│ └──log.schema.json 数据表log的schema代码
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/schema
)
根目录
```
HBuilderX 3.0之前版本目录结构如下
```
bash
┌──cloudfunctions-aliyun 云空间目录,阿里云为cloudfunctions-aliyun,腾讯云为cloudfunctions-tcb
| │───function-name 云函数目录
| | │──index.js 云函数代码
| | └──package.json 标准package.json
| │───common 云函数公用模块目录
[
详情]
(
https://uniapp.dcloud.io/uniCloud/cf-common
)
| | └──hello-common 云函数公用模块
| | │──index.js 公用模块代码
| | └──package.json 公用模块package.json
| │───uni-clientDB-actions
| │ └──new_action.js clientDB action代码
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/clientdb?id
=
action
)
│ │───db_init.json 包含schema的db_init.json,初始化数据库文件
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/hellodb?id
=
db-init
)
│ └───cloudfunctions_init.json 云函数初始化文件
[
详情]
(
https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id
=
init
)
│
根目录
```
## 创建和绑定服务空间
...
...
@@ -22,11 +66,11 @@
服务空间和手机端项目是多对多绑定关系。同账号下,一个项目可以关联到多个服务空间。一个服务空间也可以被多个项目访问。
-
在云函数目录
`cloudfunctions`
右键菜单创建服务空间,会打开web控制台
[
https://unicloud.dcloud.net.cn
](
https://unicloud.dcloud.net.cn
)
进行创建
-
在云函数目录
`cloudfunctions`
右键菜单创建服务空间
(HBuilderX 3.0以上版本请在uniCloud目录右键)
,会打开web控制台
[
https://unicloud.dcloud.net.cn
](
https://unicloud.dcloud.net.cn
)
进行创建
![
创建服务空间
](
https://img.cdn.aliyun.dcloud.net.cn/uni-app/uniCloud/create-space.png
)
-
创建好服务空间后,对目录
`cloudfunctions`
点右键,菜单中点击
`选择云服务空间`
,绑定你之前创建的服务空间。
-
创建好服务空间后,对目录
`cloudfunctions`
点右键
(HBuilderX 3.0以上版本请在uniCloud目录右键)
,菜单中点击
`选择云服务空间`
,绑定你之前创建的服务空间。
**说明**
...
...
@@ -36,7 +80,7 @@
## 创建云函数
`uniCloud`
项目创建并绑定服务空间后,开发者可以在
`cloudfunctions`
目录右键创建云函数。
`uniCloud`
项目创建并绑定服务空间后,开发者可以在
`cloudfunctions`
目录右键创建云函数
(HBuilderX 3.0以上版本请在
`uniCloud/cloudfunctions`
目录右键)
。
![
新建云函数
](
https://img.cdn.aliyun.dcloud.net.cn/uni-app/uniCloud/unicloud-02.png
)
...
...
@@ -389,7 +433,7 @@ H5前端js访问云函数,涉及跨域问题,导致前端js无法连接云
如果要在cli项目中使用uniCloud,可以参考以下步骤
1.
将cli项目导入
`HBuilderX`
2.
在项目根目录(src同级)创建
`cloudfunctions-aliyun`
或者
`cloudfunctions-tcb`
目录
2.
在项目根目录(src同级)创建
`cloudfunctions-aliyun`
或者
`cloudfunctions-tcb`
目录
(HBuilderX 3.0以上版本请创建
`uniCloud-aliyun`
、
`uniCloud-tcb`
目录)
3.
打开
`src/manifest.json`
,在
`基础配置-->uni-app应用标示`
处点击
`重新获取`
4.
在步骤2创建的目录右键关联服务空间
5.
完成
...
...
docs/uniCloud/schema.md
浏览文件 @
1bfcc1a2
...
...
@@ -25,7 +25,25 @@
2.
点击表右侧页签 “表结构”,点击 “编辑” 按钮,在编辑区域编写 Schema,编写完毕后点保存按钮即可生效。
!
[](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-uni-app-doc/e237cb60-ff2d-11ea-8a36-ebb87efcf8c0.png
)
`DB Schema`
在保存后是实时生效的,请注意对现网商用项目的影响。
**web控制台上编辑`DB Schema`保存后是实时生效的,请注意对现网商用项目的影响。**
`HBuilderX 3.0.0`
及以上版本可以在项目下管理schema,用法如下:
**创建schema**
1.
在
`uniCloud`
项目右键,选择
`创建database目录`
2.
在第一步创建的database目录右键选择
`新建数据集合schema`
**HBuilderX内创建的schema新建和保存时不会自动上传**
**上传schema**
-
在单个schema文件右键可以只上传当前选中的schema
-
在database目录右键可以上传全部schema
**下载schema**
-
database目录右键可以下载所有schema及扩展校验函数
### Schema字段@segment
...
...
@@ -434,13 +452,21 @@ uniCloud推出了`openDB`开源数据库规范,包括用户表、文章表、
当属性配置不满足需求,需要写js函数进行校验时,使用本功能。
**注意:扩展校验函数不能有其他依赖**
如何使用
1.
uniCloud 控制台,选择服务空间,切换到数据表
2.
底部 “扩展校验函数” 点击 “+” 增加校验函数 !
[](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-uni-app-doc/2f4d0230-12a2-11eb-b244-a9f5e5565f30.png
)
3.
给函数起个名字,比如叫“checkabc”
`HBuilderX 3.0.0`
及以上版本,可以在项目下创建扩展校验云函数并上传,使用方法如下:
1.
在
`uniCloud`
项目右键,选择
`创建database目录`
2.
在第一步创建的database目录右键选择
`创建数据库扩展校验函数目录`
3.
在第二步创建的
`validateFunction`
目录右键选择
`新建数据库扩展校验函数`
给函数起个名字,比如叫“checkabc”,然后写具体的js代码,
如下
扩展校验函数示例
如下
```
js
// 扩展校验函数示例
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录