圈子知识点

126 阅读3分钟

1 背景

最近在学unicloud和uniapp开发 跟的视频敲了一个可以社交的应用 名为圈子 如下图

个人资料

微信图片_20230118083109.png

评论

微信图片_20230118083130.png

详情

微信图片_20230118083136.png

编辑文章

微信图片_20230118083141.png

编辑文章 表单未获取焦点

微信图片_20230118083146.png

首页列表

微信图片_20230118083151.png

登录注册

微信图片_20230118083156.png

在写这个项目时 学到了后台是如何定义数据结构的 富文本的编写 多账号登录等众多知识点 下面就来看一看吧

1 数据表的创建和数据结构

创建项目并选择阿里云后 根目录下有个unicloud的文件夹 里面有两个文件夹

微信图片_20230118093352.png

分别是cloudfunctions和database目录

  • cloudfunctions目录 放的是云函数
  • databas目录 放的是云对象
  • 而云函数和云对象最终要放在云数据库上

1.1 云函数

先来看看官方的定义吧

微信图片_20230118102136.png

官方说的很明确了 每个云函数是一个独立的js包 里面内置了网络、数据库等各种API 方便开发者更容易的上手 我们在学习云函数之前 先来看看云函数有哪些分类吧

微信图片_20230118105933.png

分为云函数 云对象 公共模块 action云函数和unicloud扩展库 这篇文章先来说说云对象和云函数的简单用法和理解

  1. 定义一个云函数 首先在cloudfunctions目录下 右键选择新建云函数

微信图片_20230118111226.png

  1. 然后自动创建出同名目录 同名目录下有一个index.js文件
'use strict';
exports.main = async (event, context) => {
	//event为客户端上传的参数
	console.log('event : ', event)
	
	//返回数据给客户端
	return event
};

  1. 在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 云对象

我们也先来看看官方是怎么说的吧

QQ截图20230202094213.png 我所理解的云对象,其实是对云函数的封装

云对象作为云函数的一种,可以调用所有node的API和uniCloud的API。

1. 创建云对象

右击项目中uniCloud-aliyun/cloudfunctions目录创建云对象:

image.png

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('')”;

9eb11b2b02ea43cc828377bb61cac810_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.webp

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() //删除

2 链表查询

3 用户体系

4 评论

5 富文本的编写

6 首页列表的增删改查