1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-09-12 16:40:40 +08:00

refactor: 架构升级

This commit is contained in:
小莫唐尼
2026-08-31 07:58:23 +08:00
commit ba5b77568b
693 changed files with 118430 additions and 0 deletions
@@ -0,0 +1,45 @@
# 云数据库 CRUD
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/database.html
## 新增数据
```javascript
const db = uniCloud.database()
const users = db.collection('users')
users.add({
name: 'Alice',
age: 20
}).then(res => {
console.log('新增 ID', res.id)
})
```
## 查询数据
```javascript
users.get().then(res => {
console.log(res.data)
})
```
## 更新数据
```javascript
users.doc('doc-id').update({
age: 21
})
```
## 删除数据
```javascript
users.doc('doc-id').remove()
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/database.html
@@ -0,0 +1,19 @@
# 云数据库索引
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/database.html
## 使用场景
- 提升高频查询性能
- 支持复合索引提升多条件查询效率
## 示例
- 在 uniCloud 控制台为集合创建索引
- 为常用的查询字段(如 userId、createdAt)建立索引
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/database.html
@@ -0,0 +1,23 @@
# 云数据库权限控制
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/
## 说明
- 通过数据库权限规则限制读写
- 配合用户身份(如用户登录态)实现访问控制
## 示例(规则示意)
```json
{
"read": true,
"write": "auth.uid == _id"
}
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/
@@ -0,0 +1,40 @@
# 云数据库查询
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/database.html
## 条件查询
```javascript
const db = uniCloud.database()
const users = db.collection('users')
users.where({
age: db.command.gt(18)
}).get().then(res => {
console.log(res.data)
})
```
## 排序与分页
```javascript
users.orderBy('createdAt', 'desc')
.skip(0)
.limit(10)
.get()
```
## 字段筛选
```javascript
users.field({
name: true,
age: true
}).get()
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/database.html
@@ -0,0 +1,18 @@
# datacom 组件与数据绑定
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/
## 使用场景
- 快速绑定云数据库数据
- 通过组件实现低代码数据展示
## 说明
在 uniCloud 体系中,datacom 组件用于快速构建数据列表、详情页等场景。使用时需关注组件配置、数据源与权限规则。
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/
@@ -0,0 +1,20 @@
# 云函数调用
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/cf-functions.html
## 前端调用示例
```javascript
uniCloud.callFunction({
name: 'getUser',
data: { userId: '123' }
}).then(res => {
console.log(res.result)
})
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/cf-functions.html
@@ -0,0 +1,25 @@
# 云函数创建
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/cf-functions.html
## 创建云函数
1. 在项目根目录创建 `cloudfunctions/`
2. 新建函数目录(如 `getUser`)。
3. 编写 `index.js` 入口。
```javascript
'use strict'
exports.main = async (event, context) => {
return {
code: 0,
data: 'Hello uniCloud'
}
}
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/cf-functions.html
@@ -0,0 +1,28 @@
# 云服务空间创建与关联
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/
## 创建服务空间
1. 登录 DCloud 开发者中心。
2. 进入 uniCloud 控制台。
3. 新建服务空间(选择阿里云或腾讯云)。
## 关联服务空间
在 HBuilderX 中:
1. 右键项目 → `uniCloud``关联云服务空间`
2. 选择服务空间与云服务商。
3. 关联完成后即可使用云数据库、云函数、云存储。
## 注意事项
- 不同云服务商的配额、费用与功能存在差异。
- 建议为不同环境(开发/测试/生产)创建独立空间。
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/
@@ -0,0 +1,104 @@
# uniCloud 云开发指南
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/
## 什么是 uniCloud
uniCloud 是 DCloud 联合阿里云、腾讯云,为 uni-app 开发者提供的基于 serverless 模式和 js 编程的云开发平台。
## 核心功能
### 1. 云数据库
- 无需自建数据库
- 自动扩容
- 支持 JSON 文档存储
- 支持关系型数据
### 2. 云函数
- 无需管理服务器
- 按量计费
- 支持 Node.js
- 自动扩缩容
### 3. 云存储
- 文件上传下载
- CDN 加速
- 图片处理
- 安全防护
### 4. 前端网页托管
- 静态网站托管
- CDN 加速
- 自定义域名
## 服务空间
### 创建服务空间
1. 登录 DCloud 开发者中心
2. 进入 uniCloud 控制台
3. 创建服务空间
4. 选择云服务商(阿里云/腾讯云)
### 关联服务空间
在 HBuilderX 中:
1. 右键项目 → uniCloud → 关联云服务空间
2. 选择服务空间
3. 选择云服务商
## 项目结构
```
my-uniapp-project/
├── cloudfunctions/ # 云函数目录
│ ├── function1/
│ │ ├── index.js
│ │ └── package.json
│ └── ...
├── uniCloud/
│ └── database/ # 数据库 schema
│ └── db_init.json
└── ...
```
## 快速开始
### 1. 创建服务空间
在 DCloud 开发者中心创建服务空间。
### 2. 关联服务空间
在 HBuilderX 中关联服务空间。
### 3. 初始化云数据库
```javascript
// 在 uniCloud 控制台创建数据表
// 或使用 db_init.json 初始化
```
### 4. 使用云数据库
```javascript
// 在页面中使用
const db = uniCloud.database()
const collection = db.collection('users')
collection.get().then(res => {
console.log(res.data)
})
```
## 参考资源
- uniCloud 文档:https://doc.dcloud.net.cn/uniCloud/
- 云数据库:https://doc.dcloud.net.cn/uniCloud/database.html
- 云函数:https://doc.dcloud.net.cn/uniCloud/cf-functions.html
@@ -0,0 +1,40 @@
# uniCloud 项目初始化
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/
## 使用场景
- 创建新 uni-app 项目并启用 uniCloud
- 为已有项目关联云服务空间
- 初始化云函数与数据库目录
## 步骤
1. **创建或打开项目**HBuilderX 或 CLI 项目均可)。
2. **启用 uniCloud**
- 在 HBuilderX 中右键项目 → `uniCloud``关联云服务空间`
3. **确认目录结构**
```
my-uniapp-project/
├── cloudfunctions/ # 云函数目录
├── uniCloud/ # 云数据库与存储配置
└── ...
```
4. **初始化云数据库**
- 使用 `uniCloud/database` 下的 schema 或控制台创建集合。
## 示例
```javascript
// 获取数据库引用
const db = uniCloud.database()
const collection = db.collection('users')
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/
@@ -0,0 +1,24 @@
# 权限与安全规则
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/
## 关键点
- 按最小权限原则配置读写规则
- 对敏感数据进行字段级控制
- 使用用户身份信息限制访问范围
## 示例(规则示意)
```json
{
"read": "auth.uid != null",
"write": "auth.uid == _id"
}
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/
@@ -0,0 +1,17 @@
# 云存储删除
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/storage.html
## 删除文件
```javascript
uniCloud.deleteFile({
fileList: ['cloud://xxx/xxx.png']
})
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/storage.html
@@ -0,0 +1,19 @@
# 云存储下载
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/storage.html
## 获取临时链接
```javascript
uniCloud.getTempFileURL({
fileList: ['cloud://xxx/xxx.png']
}).then(res => {
console.log(res.fileList)
})
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/storage.html
@@ -0,0 +1,20 @@
# 云存储上传
## 官方文档
参考官方文档:https://doc.dcloud.net.cn/uniCloud/storage.html
## 上传文件
```javascript
uniCloud.uploadFile({
filePath: '/static/logo.png',
cloudPath: 'images/logo.png'
}).then(res => {
console.log('fileID:', res.fileID)
})
```
## 参考资源
- https://doc.dcloud.net.cn/uniCloud/storage.html