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

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属性,用于保存每一个用户的投票情况,每当有用户投票,将用户的投票选项及个人信息添加到数组中。

创建投票的功能完成。

相关推荐
m0_5873830010 小时前
广州24小时自助健身房解决方案实战指南与系统部署要点
java·spring·小程序·架构·需求分析
差不多的周周10 小时前
《骨架上下文:基于零镜头骨架的动作识别的骨架侧上下文提示学习》论文核心部分详解
学习
ZeroNews内网穿透10 小时前
企业内网穿透别再用随机域名!自有域名实现 OA/ERP 公网安全访问
微信小程序·内网穿透·erp·zeronews·运维实战·企业oa·自有域名
Century_Dragon11 小时前
从挂图到VR:汽修专业的一堂新能源原理课可以怎么上~
学习
知识分享小能手12 小时前
C++ 学习教程,从入门到精通,C++对象和类 — 详细知识点总结(10)
开发语言·c++·学习
New农民工12 小时前
倒立摆训练秘籍:理解训练参数
学习
L@ncor13 小时前
第五章 基于低代码平台的智能体搭建 · 学习笔记(Coze / Dify / FastGPT / n8n)
笔记·学习·低代码·agent·prompt工程
迪丽热爱13 小时前
多媒体应用20-903(补)
学习
m0_5873830014 小时前
西安同城拼车软件开发实战指南:从零搭建高效系统
人工智能·小程序·数据挖掘·系统架构·需求分析
传奇开心果编程15 小时前
【Flutter入门练中学】第8课:动画与过渡
android·学习·flutter·ui·ios