1 背景
最近在学unicloud和uniapp开发 跟的视频敲了一个可以社交的应用 名为圈子 如下图
个人资料
评论
详情
编辑文章
编辑文章 表单未获取焦点
首页列表
登录注册
在写这个项目时 学到了后台是如何定义数据结构的 富文本的编写 多账号登录等众多知识点 下面就来看一看吧
1 数据表的创建和数据结构
创建项目并选择阿里云后 根目录下有个unicloud的文件夹 里面有两个文件夹
分别是cloudfunctions和database目录
- cloudfunctions目录 放的是云函数
- databas目录 放的是云对象
- 而云函数和云对象最终要放在云数据库上
1.1 云函数
先来看看官方的定义吧
官方说的很明确了 每个云函数是一个独立的js包 里面内置了网络、数据库等各种API 方便开发者更容易的上手 我们在学习云函数之前 先来看看云函数有哪些分类吧
分为云函数 云对象 公共模块 action云函数和unicloud扩展库 这篇文章先来说说云对象和云函数的简单用法和理解
- 定义一个云函数 首先在cloudfunctions目录下 右键选择新建云函数
- 然后自动创建出同名目录 同名目录下有一个index.js文件
'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ', event)
//返回数据给客户端
return event
};
- 在index.js里面编写相关的逻辑代码
调用云函数 uniCloud.callFunction是调用云函数的方法 里面的name是调用的云函数的名 data是参数
getData(){
uniCloud.callFunction({
name:'cloudDomeGet',
data:{
keyword:'里'
}
}).then(res=>{
console.log(res)
this.listArr=res.result.data
})
},
1.2 云对象
我们也先来看看官方是怎么说的吧
我所理解的云对象,其实是对云函数的封装
云对象作为云函数的一种,可以调用所有node的API和uniCloud的API。
1. 创建云对象
右击项目中uniCloud-aliyun/cloudfunctions目录创建云对象:
2. 为新建的 todo 云对象添加一个 add 方法
代码示例同官方文档
在这个函数中我们接收一个 title 和一个 content 字段,在判断两者均不为空的时候提示创建成功。
module.exports = {
add(title, content) {
title = title.trim()
content = content.trim()
if (!title || !content) {
return {
errCode: 'INVALID_TODO',
errMsg: 'TODO标题或内容不可为空'
}
}
// ...其他逻辑
return {
errCode: 0,
errMsg: '创建成功'
}
}
}
调用云对象的步骤:
1. 写一个触发 add 的按钮,并在 add 函数中导入云对象“uniCloud.importObject('')”;
2. HBuilderX 自动提示了我们刚才编写的云对象,我们选择即可;
3. 导入 todo 云对象后调用云对象内置的 add 函数,注意云对象函数的执行也属于异步操作;
methods: {
async add() {
const todo = uniCloud.importObject('todo');
const res = await todo.add("php", "天下第一");
uni.showToast({
title: res.errMsg
})
}
}
1.3 云数据库
云数据库应该都好理解 就是存放数据的仓库 只不过是云端的 在前端 我们用uniCloud.database()来连接数据库 进行增删改查
const db=uniCloud.database()
db.collection() //数据库的集合
db.collection(表名).add() //增加
db.collection(表名).update() //更改
db.collection(表名).remove() //删除