• WEIXIN day_07(8.24) 学子影院项目实践3


    小程序云开发

    小程序提供了一套云开发模式可以方便的让小程序、小游戏前端开发人员直接编写后端服务。无需关心nodejs、nginx、服务器、上线、ssl、https、备案、域名等后端技能。

    小程序、小游戏前端程序员可以申请一台云开发服务器,提供云开发服务,主要能力包含:

    1. 云数据库 可以在小程序前端直接操作的云端数据库。
    2. 云存储 类似云盘。可以在小程序前端方便的进行文件的上传与下载。
    3. 云函数 云函数是在小程序前端定义,部署到云服务器后,可以远程调用,并且在云服务器端执行的函数。

    开通云开发服务

    点击小程序开发工具工具按钮:云开发,按照提示开通云开发服务。

    云数据库

    可以在小程序前端直接操作的云端数据库。云数据库是一款非关系型json类型数据库。

    mysql属于关系型数据库,存储数据的方式如下:

    idnamegenderageschool_id
    1zsm181
    2lsf192
    3wwm201
    idnamelocarea
    1清华大学五道口1000
    2北京大学中关村850

    云数据库的存储方案如下:

    [
        {
            id:1, 
            name: 'zs',
            gender: 'm',
            age: 18,
            school: {
                id: 1,
                name:'清华大学',
                loc:'五道口',
                area:1000
            }
        },
        {
            id:2, 
            name: 'ls',
            gender: 'f',
            age: 19,
            school: {
                id: 2,
                name:'北京大学',
                loc:'中关村',
                area:850
            }
        },
        {
            id:3, 
            name: 'ww',
            gender: 'm',
            age: 20,
            school: {
                id: 1,
                name:'清华大学',
                loc:'五道口',
                area:1000
            }
        }, 
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    如何描述上述这一组数据:

    有一个集合, 集合中存储了3条学生记录(3篇文档),每一条记录存储了5个字段,每个字段的数据类型不同,其中school字段是一个Object类型的字段,包含有4个属性

    使用控制面板添加一条记录

    基于小程序提供的云开发API,编写代码实现增删改查

    新增数据

    创建一个新项目testcloudproject,需要选择使用云开发

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LT4JMT32-1662967820922)(C:\Users\web\AppData\Roaming\Typora\typora-user-images\1661311879697.png)]

    新建页面:pages/db/db,编写代码测试API

    const db = wx.cloud.database({
      env: '环境ID'
    })
    db.collection('test').add({
        data: {需要新增的对象},
        success: (res)=>{
            console.log(res)
        }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如上述代码可以向集合中添加一条记录。发现小程序云数据库自动为该记录新增了两个字段:_id _openid

    _id是云数据库为该记录分配的唯一标识符。(主键)

    _openid代表了当前这一条数据的归属(当前这条记录是谁添加的)。不同的用户点击按钮添加的记录的openid也不同,而同一个用户添加的多条记录的openid都是一样的。所以可以简单的认为openid可以表示用户id这个字段主要用于管理集合中记录的操作权限(默认情况下集合中的数据仅创建者可读写)

    查询数据
    1. 通过id查询一条记录

      db.collection()   ->  返回Collection对象  描述集合
      collection.doc()  ->  基于doc方法,通过id查询一条记录  返回Record对象
      record.get()      -> 调用记录对象的get方法查询这一条记录  返回Promise
      
      • 1
      • 2
      • 3
      db.collection('集合').doc('文档id').get().then(res=>{
          .....
      })
      
      • 1
      • 2
      • 3

    实现项目中的评论功能

    1. 新建云开发项目(xzyycloud)。 将已经写过的代码复制粘贴进来。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cp799Ilo-1662967820924)(C:\Users\web\AppData\Roaming\Typora\typora-user-images\1661325877188.png)]

    2. 打开movie页面。处理评论业务。

      1. movie.js中,加载当前选中的电影的评论列表。(去云数据库中查询)
      2. 查到结果后,将数据渲染在页面中。
    点击评论,展开相应评论内容
    [
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:false},
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:false},
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:false},
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:true},
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:false},
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:false},
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:false},
        {nickname:xxx, contente:xxxx, _id:xxxxx, isOpen:true},
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Collection的常用API

    通过调用db.collection('集合名')将会获取一个Collection对象,Collection对象可以操作一个集合。含有如下方法:

    方法描述
    collection.add()添加元素
    collection.doc()通过id检索一条记录
    collection.where()添加where筛选条件
    collection.skip(n)跳过前n条
    collection.limit(n)向后查n条
    collection.get()发请求,查询云数据库,返回Promise
    collection.remove()删除记录
    collection.update()修改记录

    API 提供了以下查询指令:

    查询指令说明
    eq等于
    neq不等于
    lt小于
    lte小于或等于
    gt大于
    gte大于或等于
    in字段值在给定数组中
    nin字段值不在给定数组中
  • 相关阅读:
    计算机毕业设计Java交通事故档案管理系统(源码+mysql数据库+系统+lw文档)
    java计算机毕业设计ssm美食视频教学网站element 前后端分离
    交换机和路由器技术-13-三层交换
    前端培训技术AngularJS 控制器
    【剑指offer】二进制中1的个数&&2的幂
    Vue电商项目--详情页面完成
    flask配置SSL证书,实现https服务
    智能驾驶加速“进阶”,这家Tier1巨头如何打造“全栈能力”?
    Spring Boot集成WebSocket以及基本使用
    kafka源码-处理Poll的IO返回结果
  • 原文地址:https://blog.csdn.net/m0_70328115/article/details/126817914