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

2023-12-16 00:18:54

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

创建投票的功能完成。

文章来源:https://blog.csdn.net/xy2937131682/article/details/134938900
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。