《微信小程序开发从入门到实战》学习四十八

4.5 实现投票小程序服务端功能

前面开发投票小程序时还有一些服务端的功能没有实现,当时以//todo标注,以测试数据完成基本功能。现在学习了云开发技术,就可以实现投票小程序的服务端功能了

4.5.1 完成创建投票功能

首先,在app.js文件中加入对云开发能力的初始化方法。代码如下:

App({

onLaunch() { //生命周期函数,小程序打开时执行一次

    wx.cloud.init({

      // 小程序生命周期函数 onLaunch,小程序启动时会调用它

      env:'test-555', // 指定使用环境ID为

      traeUser:true //将用户对云资源的访问记录到用户管理中,在云开发控制台中可见

    })

  }

})

在云开发控制台的数据库管理创建新集合votes,并将集合权限设置修改为“所有用户可读,仅创建者可读写”

接下来修改createVote.js文件中的formSubmit函数,使用小程序端的云开发数据库API在集合中创建一条数据。

增加校验函数,对表单数据做一些验证,如果数据不完整可以通过小程序的提示框API提醒用户。代码如下:

formSubmit(){

    // 提交前需要先对表单内容进行校验

    const msg = this.checkFormValid()

    if(msg){ // 在if判断时,null会被转换为false

      wx.showToast({ // 在调用提示框API显示提示内容

        title: msg, // 提示框中的文字内容

        icon: 'none' // 提示框的图标,none表示没有图标

      })

      return  // 提前返回,函数会在这里结束,后面的内容不会执行

    }

    const formData = {

      type:this.data.type,

      voteTitle: this.data.formTitle,

      voteDesc: this.data.formDesc,

      optionList: this.data.optionList,

      endDate: this.data.endDate, 

      isAnonymousfalse: this.data.isAnonymousfalse,

      voteList: [] // 用于保存每一个用户投票的情况

    }

    const db = wx.cloud.database

    db.collection('votes').add({// 将表单数据添加到votes集合中

      data: formData

    }).then(res => { 

      console.log(res._id) // 从返回值中可以拿到新添加记录自动生成的ID

      wx.redirectTo({ // 自动跳转到参与投票页面

        url: '/pages/vote/vote?voteID=' + res._id,

      })

    }).catch(res => {

      console.error(res)

      wx.showToast({ // 创建投票失败时,显示提示框提示用户

        title: '创建投票失败',

        icon: 'none'

      })

    })

  }

formData中新增加了一个voteList属性,用于保存每一个用户的投票情况,每当有用户投票,将用户的投票选项及个人信息添加到数组中。

创建投票的功能完成。

相关推荐

  1. 程序开发入门实战学习

    2023-12-12 15:04:03       58 阅读
  2. 程序开发入门实战学习

    2023-12-12 15:04:03       59 阅读
  3. 程序开发入门实战学习

    2023-12-12 15:04:03       59 阅读
  4. 程序开发入门实战学习

    2023-12-12 15:04:03       53 阅读
  5. 程序开发入门实战学习

    2023-12-12 15:04:03       49 阅读
  6. 程序开发入门实战学习

    2023-12-12 15:04:03       47 阅读
  7. 程序开发入门实战学习

    2023-12-12 15:04:03       59 阅读
  8. 程序开发入门实战学习

    2023-12-12 15:04:03       54 阅读
  9. 程序开发入门实战学习

    2023-12-12 15:04:03       65 阅读
  10. 程序开发入门实战学习

    2023-12-12 15:04:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 15:04:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 15:04:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 15:04:03       82 阅读
  4. Python语言-面向对象

    2023-12-12 15:04:03       91 阅读

热门阅读

  1. Springboot Minio最新版大文件上传

    2023-12-12 15:04:03       58 阅读
  2. vue 集成行政区域选择插件region和数据回显

    2023-12-12 15:04:03       70 阅读
  3. 提取视频光流成帧并写入视频中

    2023-12-12 15:04:03       60 阅读
  4. 四年编程成长总结

    2023-12-12 15:04:03       62 阅读
  5. kafka 常用命令【学习笔记】

    2023-12-12 15:04:03       56 阅读
  6. C++ 中的引用

    2023-12-12 15:04:03       61 阅读